async および await を使用します。 - Amazon CloudFront

async および await を使用します。

CloudFront Functions JavaScript ランタイム関数 2.0 には、Promise オブジェクトを処理するための async および await 構文が用意されています。Promise は遅延した結果を表し、async とマークされた関数のキーワード await を使用してアクセスできます。さまざまな新しい WebCrypto 関数が Promise を使用しています。

Promise オブジェクトの詳細については、「Promise」を参照してください。

注記

次のコードサンプルでは、JavaScript ランタイム 2.0 を使用する必要があります。

awaitasync 関数内でのみ使用できます。async 引数とクロージャはサポートされていません。

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 コード例は、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 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; }