Compte tenu du code suivant:
var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise<number> => {
await callAsynchronousOperation(item);
return item + 1;
});
ce qui produit l'erreur suivante:
TS2322: Le type «Promise <numéro> []» ne peut pas être affecté au type «numéro []». Le type «Promise <numéro> ne peut pas être affecté au type« numéro ».
Comment puis-je y remédier? Comment puis-je créer async await
et Array.map
travailler ensemble?
map
, qui attend une opération synchrone et s'attendre à ce qu'elle fonctionne.
async
, vous faites en sorte que cette fonction renvoie une promesse. Alors bien sûr, une carte d'async renvoie un tableau de promesses :)
arr.map()
est synchrone et ne renvoie pas de promesse.