Utilisation de async et await - Amazon CloudFront

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de async et await

CloudFront Fonctions fournies par JavaScript Runtime Functions 2.0 async et await syntaxe permettant de gérer Promise les objets. Les promesses représentent des résultats différés accessibles via le mot clé await dans les fonctions marquées comme async. Diverses nouvelles WebCrypto fonctions utilisent Promises.

Pour plus d’informations sur les objets Promise, consultez Promise.

Note

Vous devez utiliser JavaScript Runtime 2.0 pour les exemples de code suivants.

awaitne peut être utilisé qu'à l'intérieur async des fonctions. asyncles arguments et les fermetures ne sont pas pris en charge.

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

L'exemple de JavaScript code suivant montre comment afficher les promesses avec la méthode de la then chaîne. Vous pouvez utiliser catch pour visualiser les erreurs.

Avertissement

L'utilisation de combinateurs de promesses (par exemple, Promise.allPromise.any,) et de méthodes de chaîne de promesses (par exemple, then etcatch) peut nécessiter une utilisation importante de la mémoire fonctionnelle. Si votre fonction dépasse le quota de mémoire maximal, elle ne pourra pas s'exécuter. Pour éviter cette erreur, nous vous recommandons d'utiliser la await syntaxe plutôt que les promise méthodes.

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