在Array.map 使用Async/Await
嘗試在Array.map 使用async/await 時,使用者經常會遇到類似的錯誤以下內容:
“輸入'Promise
要解決此問題,請轉換 Array 傳回的 Promise 陣列。使用 Promise.all 對應到單一 Promise。只有當其可迭代參數中的所有 Promise 都已解決時,Promise.all 才會解析。
這是有問題程式碼的修改版本:
透過利用Promise.all,Promise 陣列被解析為單一Promise,允許wait 正確運行,消除「Type 'Promiseconst arr = [1, 2, 3, 4, 5]; const 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。然而,在上述情況下,Promise.all 通常是最合適的選擇。
以上是在 Array.map 中使用 Async/Await 時,如何解決「型別『Promise[]』不可指派給型別『number[]』」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!