【发布时间】:2014-01-02 16:41:14
【问题描述】:
我正在使用延迟对象数组。这个数组的大小是 vble,所以它可以有一个或多个延迟对象。处理ajax调用时会出现问题。代码如下:
$.when.apply($, array_ajax_calls).then(...)
当使用 .when 和 .apply 时,如果数组只有一个 promise 对象,则响应是一个包含三个对象的数组:
// Return the object, the status and the jqXHR object
[Array[1] , "success", Object ]
如果数组包含多个对象,则返回一个响应数组,如前一个。
[
[Array[1] , "success", Object ],
[Array[1] , "success", Object ],
...
]
如您所见,反应是不同的。第一个返回一个包含三个值的数组。第二个返回一个包含三个值的数组数组。这使我必须检查是否为一个或多个对象完成了 ajax 调用并更改逻辑,因为响应具有不同的格式。
我不明白为什么我应该得到不同的回应。如果我将一组承诺(即使只有一个承诺)传递给 .apply(...) 函数,我希望得到:
[ [Array[1] , "success", Object ] ]
而不是
[Array[1] , "success", Object ]
有没有办法获得相同的响应格式?
【问题讨论】:
标签: javascript jquery jquery-deferred