$ .when.apply的返回值($,$。map(array,someFunction(x){}))?

时间:2015-10-16 14:42:07

标签: javascript jquery deferred

从getTickets函数返回什么?

function getTickets(needsTickets) {
    return $.when.apply($, $.map(needsTickets, function(x) {
        return function(x) { return $.ajax() } ;
    }));
}

2 个答案:

答案 0 :(得分:0)

$.when返回promise

可以用来附加同步回调。它们将在$.when执行结束时执行。

$.when(...).done(function() {
    console.log('everything is ok');
}).fail(function() {
    console.log('not ok');
}).always(function() {
    console.log('always called');
});

apply是一个关于函数的javascript内置函数。它可以用于调用带有参数数组的函数。这2行做同样的事情:

myFunction.call(null, ['test', 'test 2']);
myFunction('test', 'test 2');

答案 1 :(得分:0)

让我们分析一下发生了什么:

$.when的结果是一个承诺,即返回的结果。

$.when不接受数组作为参数,以便处理您需要执行的一系列承诺:

$.when.apply( context, promiseArray);

承诺数组由$.map

创建