Uso di async e await - Amazon CloudFront

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à.

Uso di async e await

CloudFront Le funzioni JavaScript di runtime di Functions 2.0 forniscono una async await sintassi per gestire Promise gli oggetti. Le promesse rappresentano risultati con ritardo a cui è possibile accedere tramite la parola chiave await 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; }