Biorąc pod uwagę następujący kod:
var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise<number> => {
await callAsynchronousOperation(item);
return item + 1;
});
co powoduje następujący błąd:
TS2322: Typu „Promise <numer> []” nie można przypisać do typu „numer []”. Typu „Promise <number> nie można przypisać do typu„ number ”.
Jak mogę to naprawić? Jak mogę tworzyć async await
i Array.map
współpracować?
map
, która oczekuje operacji synchronicznej i oczekuje, że zadziała.
async
, sprawiasz, że funkcja zwraca obietnicę. Więc oczywiście mapa asynchronii zwraca tablicę obietnic :)
arr.map()
jest synchroniczny i nie zwraca obietnicy.