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;
}