human
Étant donné le code suivant :
```var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise => {
        await callAsynchronousOperation(item);
        return item + 1;
    });
```
qui produit l'erreur suivante :

  TS2322: Le type 'Promise[]' n'est pas assignable au type 'number[]'.
  Le type 'Promise' n'est pas assignable au type 'number'.

Comment puis-je le corriger ? Comment puis-je faire fonctionner ```async await``` et ```Array.map``` ensemble
gpt
Le problème ici est que vous essayez de ```await``` un tableau de promesses plutôt qu'une promesse. Cela ne fait pas ce que vous attendez.
Lorsque l'objet passé à ```await``` n'est pas une promesse, ```await``` renvoie simplement la valeur telle quelle immédiatement au lieu d'essayer de la résoudre. Donc, puisque vous avez passé ```await``` un tableau (d'objets Promise) ici au lieu d'une promesse, la valeur renvoyée par await est simplement ce tableau, qui est de type ```Promise[]```.
Ce que vous voulez probablement faire, c'est appeler ```Promise.all``` sur le tableau retourné par ```map``` afin de le convertir en une seule promesse avant de l'```await```er.
Selon la documentation MDN pour ```Promise.all``` :

La méthode ```Promise.all(iterable)``` renvoie une promesse qui se résout
lorsque toutes les promesses de l'argument itérable se sont résolues, ou
se rejette avec la raison de la première promesse rejetée.

Donc dans votre cas :
```var arr = [1, 2, 3, 4, 5];
var results: number[] = await Promise.all(arr.map(async (item): Promise => {
    await callAsynchronousOperation(item);
    return item + 1;
}));
```
Cela résoudra l'erreur spécifique que vous rencontrez ici.
Selon exactement ce que vous essayez de faire, vous pouvez également envisager d'utiliser ```Promise.allSettled```, ```Promise.any```, ou ```Promise.race``` à la place de ```Promise.all```, bien que dans la plupart des situations (presque certainement celle-ci incluse) ```Promise.all``` sera celui que vous voulez.