Dato il seguente codice:
var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise<number> => {
await callAsynchronousOperation(item);
return item + 1;
});
che produce il seguente errore:
TS2322: Digitare 'Promessa <numero> []' non è assegnabile al tipo 'numero []'. Digitare "Promessa <numero> non è assegnabile al tipo" numero ".
Come posso ripararlo? Come posso creare async await
e Array.map
lavorare insieme?
map
, che prevede un'operazione sincrona e si prevede che funzioni.
async
, stai facendo in modo che la funzione restituisca una promessa. Quindi, ovviamente, una mappa di asincrono restituisce una serie di promesse :)
arr.map()
è sincrono e non restituisce una promessa.