使用jQuery deferred.resolveWith()在单个参数中传递数组

时间:2012-07-11 12:01:49

标签: javascript jquery jquery-deferred

我有一个jQuery deferred,我就是这样解决的:

deferredAction.resolve(returnArray);

这是一个回调,如:

function someCallback(myArray) {
...
}

这很好用,回调函数接收数组。但是我需要设置回调函数的上下文,所以我使用了deferred.resolveWith,如下所示:

deferredAction.resolveWith(someContext, returnArray);

现在正确设置了上下文。但是,现在好像returnArray被拆分了。 我的回调只接收数组的第一项。

为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:5)

documentation表示您应该在单个数组中传递参数。在你的情况下:

deferredAction.resolveWith(someContext, [returnArray]);

答案 1 :(得分:0)

我通过在返回参数周围放置方括号来修复此问题:

deferredAction.resolveWith(someContext, [returnArray]);