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.

awaitpuò essere utilizzato solo all'interno async delle funzioni. asyncargomenti e chiusure 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.allPromise.any,) e dei metodi della catena di promesse (ad esempio, then andcatch) può richiedere un utilizzo elevato della memoria funzionale. Se la funzione supera la quota massima di memoria funzionale, non verrà eseguita. Per evitare questo errore, si consiglia di utilizzare la await sintassi anziché promise i metodi.

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