Cho mã sau:
var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise<number> => {
await callAsynchronousOperation(item);
return item + 1;
});
tạo ra lỗi sau:
TS2322: Loại 'Hứa <số> []' không thể gán cho loại 'số []'. Nhập 'Promise <number> không thể gán cho loại' số '.
Làm thế nào tôi có thể sửa chữa nó? Làm thế nào tôi có thể làm async await
và Array.map
làm việc cùng nhau?
map
, mong đợi một hoạt động đồng bộ và mong đợi nó hoạt động.
async
, bạn đang thực hiện chức năng đó sẽ trả lại một lời hứa. Vì vậy, tất nhiên, một bản đồ không đồng bộ trả về một loạt các lời hứa :)
arr.map()
là đồng bộ và không trả lại một lời hứa.