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!