本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 async 以及 await
CloudFront 函數 JavaScript 執行期函數 2.0 提供 async
和 await
語法來處理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; }