[英]JQuery/Ajax: How to combine several ajaxes into one async ajax with response?
异步使用$。
init: function() {
console.log('begin');
$.when(
{async: true},
this.ajax1(),
this.ajax2(),
this.ajax3()
).done(function() {
console.log('success');
}, function () {
console.log('error');
});
console.log('end');
}
每个ajax1,ajax2或ajax3都可以同步或异步
如果不正常,那么我希望在控制台输出中看到下一个顺序 :
开始
结束
成功(或错误)
但是实际输出始终是:
开始
成功(或错误)
结束
您永远不要使用同步ajax。 –阿德尼奥
问题是我的某些ajax是同步的,因为它们的结果是依赖的。
ajax1完成后无法调用ajax2。 例如$ ajax(){.....,完成:function(){ajax2调用} – user3509208
因此,我使它们异步,并为那些依赖数据的人完成了内部ajax的操作:
init: function() {
console.log('begin');
$.when(
{async: true},
this.ajax1(),
this.ajax2()
).done(function() {
console.log('success');
}, function () {
console.log('error');
});
console.log('end');
}
ajax1: function() {
return $.ajax('url', {
async: true,
success: ... ,
error: ...)
);
}
ajax2: function() {
return $.ajax('url', {
async: true,
success: ajax3(),
error: ...)
);
}
ajax3: function() {
return $.ajax('url', {
async: true,
success: ... ,
error: ...)
);
}
现在它正在工作!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.