2015-10-16 40 views
1

getTickets函数返回什么?

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

返回一个承诺

$.when.apply(context, promiseArray); 

正在创建的承诺阵列。 getTickets('someValue')。then(function(){alert('All ajax is done');})' – charlietfl

+1

实际上更像'getTickets(someArray)。然后...' – charlietfl

回答

0

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

$.when结果是一个承诺,那就是正在返回什么。

$.when不接受数组作为参数,以便处理承诺的数组,你需要做的:通过$.map

0

$.when返回promise

它可以使用附加aysnchronous回调。它们将在$.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');