Dado el siguiente código:
var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise<number> => {
await callAsynchronousOperation(item);
return item + 1;
});
que produce el siguiente error:
TS2322: El tipo 'Promesa <número> []' no se puede asignar al tipo 'número []'. El tipo 'Promesa <número> no se puede asignar al tipo' número '.
¿Cómo puedo arreglarlo? ¿Cómo puedo hacer async await
y Array.map
trabajar juntos?
map
, que espera una sincrónica, y espera que funcione.
async
, está haciendo que esa función devuelva una promesa. Entonces, por supuesto, un mapa asíncrono devuelve una serie de promesas :)
arr.map()
es sincrónico y no devuelve una promesa.