是的,使用方法
Deferred是这样做的:
function a() { var def = $.Deferred(); $.ajax("http://url1").done(function(data){ var requests = []; for (var i = 0; i < 2; i++) { requests.push(b()); } $.when.apply($, requests).then(function() { def.resolve(); }); }); return def.promise();}// called by a()function b() { var def = $.Deferred(), requests = []; for (var i = 0; i < 2; i++) { requests.push($.ajax("http://url2").done(function(data){ // do something console.log('b called'); }); } $.when.apply($, requests).then(function() { def.resolve(); }); return def.promise();}function main(){ $.when(a()).done(function(){ console.log('all completed'); });}//编辑:替换
.pipe为
.done。



