2011-04-26 78 views
3

在jQuery中,deferred.then增加當遞延對象是解決或拒絕被稱爲處理程序。jQuery Deferred回調的參數是什麼?

deferred.then(doneCallbacks, failCallbacks) 
  • doneCallbacks —甲功能,或功能的陣列,所述延遲被解析時調用。
  • failCallbacks —當Deferred被拒絕時調用的函數或函數數組。

在以下示例中,這些「完成」和「失敗」回調函數的參數是什麼?

是否依賴於遞延對象的類型?例如:

$.when({testing: 123}) 
    .then(function(x){ ... }); 

$.when($.getJSON('foo')) 
    .then(function(x){ ... }); 

對'x'有不同的值嗎?

+0

這不是一個直接的答案,但有些事你可以做的是檢查「論據」關鍵字或者與執行console.log或調試,看看所有的參數都被傳遞,他們的價值是什麼。這是您使用的是沒有記錄的(像什麼「E」是在幾乎每一個jQuery Mobile的事件),新的jQuery功能時,一個有用的做法。 – 2011-04-26 21:08:18

+0

偉大的問題!我只是爲自己尋找這個文檔! – hippietrail 2012-09-02 19:21:13

回答

2

Deferred的創建者分別調用resolveWith()rejectWith()分別調用完成的回退和失敗回退;這些函數採用的兩個參數被傳遞給回調。因此,它完全取決於創建該對象Deferred函數的類型。 (上下文通常但不是必然是Deferred對象本身。)

+0

TNX 4 pointin我ň達禮DireXion將 – Paul 2011-04-26 21:29:32

+0

@Tgr:你的意思是說「回退」或者應該說那些「回調」? – hippietrail 2012-09-03 08:23:11

相關問題