2017-06-05 50 views
0

我正在嘗試做幾十個可能的ajax調用,並且想要將它們同時堆疊到4個或5個,但不能一次全部將它們全部解除。在C#中,我會使用一個ActionBlock,併發送我的委託,直到我準備好,然後開始執行。有沒有相當於Func <T>或更好,在JavaScript中的ActionBlock?

所以,我試圖建立在JavaScript中一樣,並已能夠得到的一切使用$。當和數組的工作,但我不能夠在一個委託傳遞給特別參數的函數。

我已經嘗試fn.apply和fn.bind,但他們都試圖創建執行鏈時立即執行。

在C#中,簽名,簡直是:

public Push(Action|Func<T> methodToCall){...} 

然後我會遞歸調用它的$。當

+2

你談點你已經嘗試過的東西 - 但還沒有表現出任何的它 - 也許這是你犯的一個簡單的錯誤,也許它不是 - 我們怎麼說?一般來說,它看起來像你可能在正確的軌道 –

+0

你看過使用承諾嗎? – ACOMIT001

+0

@ ACOMIT001 - 他提到'$ .when' - 所以,這將是一個對我說 –

回答

0

在jQuery的的處理程序。然後你可以使用.queue(queueName)設置一個數組N個同步函數或者可以按順序調用的異步過程,即前一個函數返回Promise或其他值; .promise(queueName)等待調用queueName數組中的所有函數; .then()鏈接到.promise(queueName)以執行操作時queueName jQuery承諾對象已滿足。

同樣的模式也可以不使用jQuery組成;通過使用Array.prototype.shift(),Promise構造函數或其他Promise對象,以及遞歸或重複調度。

+0

謝謝,shift()指出我正確的方向。排隊函數指針和參數,然後遞歸調用它直到數組爲空將會工作。 – ewassef