我有一个jQuery deferred,我就是这样解决的:
deferredAction.resolve(returnArray);
这是一个回调,如:
function someCallback(myArray) {
...
}
这很好用,回调函数接收数组。但是我需要设置回调函数的上下文,所以我使用了deferred.resolveWith,如下所示:
deferredAction.resolveWith(someContext, returnArray);
现在正确设置了上下文。但是,现在好像returnArray被拆分了。 我的回调只接收数组的第一项。
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:5)
documentation表示您应该在单个数组中传递参数。在你的情况下:
deferredAction.resolveWith(someContext, [returnArray]);
答案 1 :(得分:0)
我通过在返回参数周围放置方括号来修复此问题:
deferredAction.resolveWith(someContext, [returnArray]);