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 async
delle funzioni. async
argomenti 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.all
Promise.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; }