Utilizar async e await
As funções do JavaScript runtime 2.0 do CloudFront Functions oferecem as sintaxes async
e await
para lidar com objetos Promise
. Promises representam resultados atrasados que podem ser acessados por meio da palavra-chave await
nas funções marcadas como async
. Várias novas funções do WebCrypto usam Promises.
Para obter mais informações sobre objetos Promise
, consulte Promise
nota
É necessário usar o JavaScript runtime 2.0 para os exemplos de código a seguir.
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; }
O exemplo de código JavaScript a seguir mostra como visualizar Promises com o método de cadeia then
. É possível usar catch
para visualizar erros.
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; }