2012-07-11 54 views
3

我有一個jQuery deferred,我分辨像這樣:傳遞一個陣列中使用jQuery deffered.resolveWith()的單個參數

deferredAction.resolve(returnArray); 

並且這被調用等回調:

function someCallback(myArray) { 
... 
} 

這工作正常,回調函數接收數組。不過,我需要設置回調函數的上下文,所以我用deferred.resolveWith像這樣:

deferredAction.resolveWith(someContext, returnArray); 

上下文現在被正確設置。但是,現在看起來好像是正在分割returnArray。 我的回調只接收陣列的第一項。

爲什麼會發生這種情況,我該如何解決它?

回答

0

我解決了這個問題通過把周圍的返回參數方括號:

deferredAction.resolveWith(someContext, [returnArray]); 
+0

尖括號是V形'⟨⟩'你有你的條件混爲一談。 – rlemon 2012-07-11 12:12:11

+0

@rlemon抱歉,錯字糾正。 – UpTheCreek 2012-07-11 12:18:35

5

documentation狀態,你應該傳遞參數在單個陣列中。你的情況:

deferredAction.resolveWith(someContext, [returnArray]);

+0

我讀過文檔(你認爲我會鏈接到它沒有這樣做?) - 很明顯,我錯過了這一點。沒有必要是鈍的。 – UpTheCreek 2012-07-11 12:17:46

+0

@UpTheCreek其實,我沒有注意到。抱歉。 – Esailija 2012-07-11 12:21:58

+0

沒問題 - 我想我喝了太多咖啡..... – UpTheCreek 2012-07-11 12:25:51

相關問題