코드 조각에서:
var arr = [1,2,3,4,5]; var results: number[] = await arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1; });
"TS2322: Type 'Promise< ;number>[]'는 'number[]'' 유형에 할당할 수 없습니다. 이 오류는 예상 유형(number[])과 실제 유형(Promise
문제
문제는 배열을 기다리려고 하기 때문에 발생합니다. Promise(Promise
해결책
이 오류를 수정하려면 Promise.all을 활용하여 Promise
Promise.all을 사용하면 Promise 배열을 단일 Promise로 변환하여 모든 Promise의 해결을 기다릴 수 있습니다.
var arr = [1, 2, 3, 4, 5]; var results: number[] = await Promise.all(arr.map(async (item): Promise<number> => { await callAsynchronousOperation(item); return item + 1; }));
또는 상황에 따라 Promise.allSettled, Promise.any 또는 Promise.race를 사용하는 것도 고려해 보세요. 특정 사용 사례. 그러나 제공하신 시나리오에서는 Promise.all이 여전히 가장 적절한 선택입니다.
위 내용은 `await arr.map()`이 실패하는 이유는 무엇이며 `Promise.all`은 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!