1
可以說我有下面的代碼:延遲函數傳入when()異步或同步運行?
$.when(func1(),funct2(),func3())
.done(...)
.fail(...);
我想知道,如果這些功能都將被立即調用,如果jQuery將打電話給他們紛紛爲他們解決了。根據文檔看來,它們將異步運行:
在多個Deferred對象傳遞給jQuery.when的情況下,該方法從跟蹤聚合狀態的新「主」Deferred對象返回Promise已經通過的所有延期債券。
...
在其中Deferreds之一被拒絕多重Deferreds情況下,jQuery.when立即觸發其主延遲的failCallbacks。請注意,在這一點上,某些延期付款可能仍未解決。
我讀這是FUNC1,FUNC2和FUNC3都會得到立即解僱,並返回將處理調用適當的回調函數主Deferred對象,但只要第1拒收(方式)檢測fail()回調將立即觸發。我對這個問題的理解是否正確或者是否存在我缺少的東西?
待辦事項'FUNC1()','funct2()'和'FUNC3()''返回對象Deferred'?這些函數將在'$ .when()'被調用之前被調用,因爲你自己調用它們。 –
是的,這只是一個假設,但假設他們都會返回一個承諾(),並且他們都將被解決。 – bittersweetryan