2015-10-16 50 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');