Gunakan async dan await - Amazon CloudFront

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan async dan await

CloudFront Fungsi JavaScript runtime function 2.0 menyediakan async dan await sintaks untuk menangani Promise objek. Janji mewakili hasil tertunda yang dapat diakses melalui await kata kunci dalam fungsi yang ditandai sebagaiasync. Berbagai WebCrypto fungsi baru menggunakan Promises.

Untuk informasi selengkapnya tentang Promise objek, lihat Janji.

catatan

Anda harus menggunakan JavaScript runtime 2.0 untuk contoh kode berikut.

awaithanya dapat digunakan di dalam async fungsi. asyncargumen dan penutupan tidak didukung.

async function answer() { return 42; } // Note: async, await can be used only inside an async function. async arguments and closures are not supported. async function handler(event) { // var answer_value = answer(); // returns Promise, not a 42 value let answer_value = await answer(); // resolves Promise, 42 console.log("Answer"+answer_value); event.request.headers['answer'] = { value : ""+answer_value }; return event.request; }

JavaScript Kode contoh berikut menunjukkan cara melihat janji dengan metode then rantai. Anda dapat menggunakan catch untuk melihat kesalahan.

Awas

Menggunakan kombinator janji (misalnya,Promise.all,Promise.any, dan metode rantai janji (misalnya, then dancatch) dapat memerlukan penggunaan memori fungsi tinggi. Jika fungsi Anda melebihi kuota memori fungsi maksimum, itu akan gagal dijalankan. Untuk menghindari kesalahan ini, kami sarankan Anda menggunakan await sintaks alih-alih promise metode.

async function answer() { return 42; } async function squared_answer() { return answer().then(value => value * value) } // Note: async, await can be used only inside an async function. async arguments and closures are not supported. async function handler(event) { // var answer_value = answer(); // returns Promise, not a 42 value let answer_value = await squared_answer(); // resolves Promise, 42 console.log("Answer"+answer_value); event.request.headers['answer'] = { value : ""+answer_value }; return event.request; }