Maison > interface Web > js tutoriel > Comment puis-je utiliser « Array.map » et « async/await » ensemble pour traiter correctement les promesses ?

Comment puis-je utiliser « Array.map » et « async/await » ensemble pour traiter correctement les promesses ?

Susan Sarandon
Libérer: 2024-12-14 11:47:18
original
861 Les gens l'ont consulté

How Can I Use `Array.map` and `async/await` Together to Process Promises Correctly?

Array.map et Async/Await : résolution de la compatibilité avec la promesse

Alors que l'extrait de code ci-dessous vise à utiliser Array.map et async/await , cela déclenche une erreur :

var arr = [1,2,3,4,5];

var results: number[] = await arr.map(async (item): Promise<number> => {
        await callAsynchronousOperation(item);
        return item + 1;
    });
Copier après la connexion

L'erreur provenait de la tentative d'attente d'un un ensemble de promesses plutôt qu’une seule promesse. La solution rapide, cependant, consiste à utiliser Promise.all pour transformer le tableau de promesses en une promesse solitaire avant d'attendre sa résolution.

var arr = [1, 2, 3, 4, 5];

var results: number[] = await Promise.all(arr.map(async (item): Promise<number> => {
    await callAsynchronousOperation(item);
    return item + 1;
}));
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal