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
Susan Sarandonoriginal
2024-12-14 11:47:18862parcourir

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

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

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!

Déclaration:
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