Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo asincrono and await
CloudFront Funzioni fornite JavaScript dalle funzioni di runtime 2.0 async e await sintassi per gestire Promise gli oggetti. Le promesse rappresentano risultati ritardati a cui è possibile accedere utilizzando la await parola chiave nelle funzioni contrassegnate come. async Diverse nuove WebCrypto funzioni utilizzano Promises.
Per ulteriori informazioni sugli oggetti Promise, consulta Promessa
Nota
È necessario utilizzare JavaScript runtime 2.0 per i seguenti esempi di codice.
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 JavaScript codice di esempio seguente mostra come visualizzare le promesse con il metodo then chain. È 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; }