结合延期响应

时间:2015-03-16 18:29:59

标签: javascript jquery promise

使用jQuery Deferred' s $.when将响应合并到数组中是否可能?

var promise = $.when(
    ajaxRequest1,
    ajaxRequest2
);

promise.done(callback);

"回调"函数看起来像function callback(resp, options)。请注意它只接受一个响应。

我认为以下可能有用,但没有。

var promise = $.when(
    ajaxRequest1,
    ajaxRequest2
);
promise.then(function(resp1, resp2) {
    return [resp1, resp2];
});

1 个答案:

答案 0 :(得分:1)

问题是jQuery使用3个参数解析了它的ajax promise,当你在多个promise上使用$.when时,它们会成为一个值数组。要仅获取data(每个ajax回调的第一个参数),请使用

var promise = $.when(
    ajaxRequest1,
    ajaxRequest2
).then(function(resp1, resp2) {
    return [resp1[0], resp2[0]];
});