$ .ajax返回jQuery承诺。然后
then,您可以调用该诺言将完成链接到一个函数。该ajax
data作为promise参数传递给任何最终的回调函数。这是因为$ .ajax“承诺返回Ajax数据”。
如果对所有功能都遵循相同的模式,则可以根据需要链接所有内容。通过不调用函数或添加匿名回调,它仅使用每个函数调用产生的承诺并将它们组合在一起。
就像是:
function CallWebService (uri, filter){ var data = {}; if (filter && filter != '') data['$filter'] = filter; return jQuery.ajax({ url: '/_api/lists/' + uri + '/items', data: data, dataType: 'json' });}function getGreenData() { return CallWebService("GreenData", "filter from InitialData");}function getRedData() { return CallWebService("RedData", "filter from InitialData");}function GetInitialData() { return CallWebService("InitialData", "").then(GetGreenData);}// Fetch green data then red data sequentiallyfunction GetFinalData () { return getGreenData().then(getRedData);}// Call the final oneGetFinalData().done(function(greendata, reddata){ alert("all done!");});要并行运行promise,请立即评估函数,并将结果promise与结合使用
$.when:
例如
// Fetch green data and red data in parallelfunction GetFinalData () { return $.when(getGreenData(), getRedData());}


