2 回答

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
假設(shè)您的代碼在第一個(gè)承諾成功完成時(shí)嘗試解析承諾數(shù)組,您需要更改代碼以使用數(shù)據(jù)數(shù)組調(diào)用 resolve 方法。這是因?yàn)槟惴祷氐某兄Z有一個(gè)承諾數(shù)組的通用參數(shù),取自你的 PromiseRace 函數(shù)的返回類型,所以它的 resolve 方法期望一個(gè)數(shù)組作為它的參數(shù)。
promise.then((data) => resolve([data])).catch((error) => reject(error))
如果你采納上面 Dane 的建議,這似乎是一個(gè)很好的建議,并且你將返回類型更改為Promise<T>
那么你只需要將空返回條件更改為不返回?cái)?shù)組
if (isArrayEmpty) resolve()

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
您實(shí)際上不需要 function isPromiseLike
,您的promiseRace
function 可以接受values: Array<T>
然后通過調(diào)用 map over it Promise.resolve
。它的行為與您在原始帖子中的行為完全一樣。
查看此帖子以獲取詳細(xì)說明: https://stackoverflow.com/a/27746324/5644120
添加回答
舉報(bào)