async および await を使用します。
CloudFront Functions JavaScript ランタイム関数 2.0 には、Promise
オブジェクトを処理するための async
および await
構文が用意されています。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; }