我在使用Promise.all()的問題。如何使用Promise.all()當我想傳遞一個數組變量作爲參數
我想將一個數組變量作爲參數傳遞給Promise.all(),如下所示。
const promArr = []
if (condition1) {
promArr.push(() => prom1(arg1, arg2))
}
if (condition2) {
promArr.push(() => prom2(arg1, arg2))
}
if (promArr.length > 0) Promise.all(promArr)
但上面並沒有運行諾言功能(prom1
,prom2
),即使所有條件。 (promArr.length
是如我所料)
,如果我直接推諾言功能promArr
,我怕他們在那個時候,他們都推到promArr
,而不是在Promise.all(promArr)
運行。
在這種情況下,我該如何正確使用Promise?
'Promise.all'需要一個承諾數組,而不是一個承諾返回函數數組。你爲什麼試圖包裹它們? – Bergi
您可以(也應該)在空陣列上調用'Promise.all'。不需要'if(promArr.length> 0)'。 – Bergi