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

Passing an array in a single argument using jQuery deffered.resolveWith()

本文关键字:参数 数组 单个 deffered jQuery resolveWith 使用      更新时间:2023-09-26

我推迟了一个jQuery,我正在像这样解决它:

deferredAction.resolve(returnArray);

这是一个回调,类似于:

function someCallback(myArray) {
...
}

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

deferredAction.resolveWith(someContext, returnArray);

现在正在正确设置上下文。然而,现在看来returnArray似乎正在被拆分我的回调只接收数组的第一项

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

文档指出,应该在单个数组中传递参数。在您的情况下:

deferredAction.resolveWith(someContext, [returnArray]);

我通过在返回参数周围放方括号来解决这个问题:

deferredAction.resolveWith(someContext, [returnArray]);