使用 async 以及 await - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 async 以及 await

CloudFront 函數 JavaScript 執行期函數 2.0 提供 asyncawait 語法來處理Promise物件。Promises 代表可以透過函數中標記為 async 的關鍵字 await 存取延遲結果。各種新 WebCrypto 函數都使用承諾。

如需 Promise 物件的詳細資訊,請參閱 Promise

注意

您必須針對下列程式碼範例使用 JavaScript 執行期 2.0。

async function answer() { return 42; } // Note: async, await can be used only inside an async function. 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 程式碼顯示如何使用 then 鏈結方法檢視承諾。您可以使用 catch 來檢視錯誤。

async function answer() { return 42; } async function squared_answer() { return answer().then(value => value * value) } // note async, await can be used only inside async function 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; }