รับรหัสต่อไปนี้:
var arr = [1,2,3,4,5];
var results: number[] = await arr.map(async (item): Promise<number> => {
await callAsynchronousOperation(item);
return item + 1;
});
ซึ่งสร้างข้อผิดพลาดต่อไปนี้:
TS2322: พิมพ์ 'Promise <number> []' ไม่สามารถกำหนดให้พิมพ์ 'number []' พิมพ์ 'Promise <number> ไม่สามารถกำหนดให้พิมพ์' number 'ได้
ฉันจะแก้ไขได้อย่างไร ฉันจะสร้างasync await
และArray.map
ทำงานร่วมกันได้อย่างไร
map
ซิงโครนัสและคาดว่ามันจะทำงานได้
async
คุณจะทำให้ฟังก์ชันนั้นคืนค่าสัญญา ดังนั้นแน่นอนแผนที่ async ส่งกลับอาร์เรย์ของสัญญา :)
arr.map()
เป็นแบบซิงโครนัสและไม่ส่งคืนสัญญา