使用 async 和 await
CloudFront Functions JavaScript 运行时函数 2.0 提供了 async
和 await
语法来处理 Promise
对象。Promise 表示延迟的结果,可以通过标记为 async
的函数中的 await
关键字进行访问。各种新的 WebCrypto 函数都使用 Promise。
有关 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
链式方法查看 Promise。您可以使用 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; }