Uso di async e await - Amazon CloudFront

Uso di async e await

Le funzioni di runtime JavaScript 2.0 di Funzioni CloudFront forniscono la sintassi async e await per gestire gli oggetti Promise. Le promesse rappresentano risultati con ritardo a cui è possibile accedere tramite la parola chiave await nelle funzioni contrassegnate come async. Diverse nuove funzioni WebCrypto utilizzano le promesse.

Per ulteriori informazioni sugli oggetti Promise, consulta Promessa.

Nota

Per gli esempi di codice riportati di seguito, è necessario utilizzare JavaScript runtime 2.0.

await può essere utilizzato solo all’interno delle funzioni async. Argomenti e chiusure async non sono supportati.

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

Il seguente codice JavaScript di esempio mostra come visualizzare le promesse con il metodo della catena then. È possibile utilizzare catch per visualizzare gli errori.

avvertimento

L’uso dei combinatori di promesse (ad esempio, Promise.all, Promise.any) e dei metodi di catena di promesse (ad esempio, then e catch) può richiedere un elevato utilizzo della memoria delle funzioni. Se la funzione supera la quota massima di memoria delle funzioni, non verrà eseguita. Per evitare questo errore, ti consigliamo di utilizzare la sintassi await anziché i metodi promise.

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