Maison >interface Web >js tutoriel >Comment puis-je utiliser « async/await » avec « Array.map » pour gérer les opérations asynchrones ?

Comment puis-je utiliser « async/await » avec « Array.map » pour gérer les opérations asynchrones ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-15 17:36:12788parcourir

How Can I Use `async/await` with `Array.map` to Handle Asynchronous Operations?

Faire en attente asynchrone Travailler avec Array.map

Array.map est une méthode puissante pour transformer chaque élément d'un tableau. Cependant, son utilisation avec des opérations asynchrones peut présenter des défis.

Dans l'extrait de code fourni, l'erreur survient car la sortie de map est un tableau de promesses, pas une promesse. wait attend une promesse et renvoie la valeur résolue, mais avec un tableau, il renvoie le tableau lui-même.

Pour résoudre ce problème, Promise.all peut être utilisé pour convertir le tableau de promesses en une seule promesse. Promise.all attend que toutes les promesses du tableau soient résolues avant de résoudre la seule promesse externe.

Le code corrigé :

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

Cette modification garantit que la sortie d'Array.map est convertie en une seule promesse, permettant à wait de résoudre correctement le résultat combiné sous forme d'un tableau de nombres.

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