简而言之,问题是:
jQuery.ajax({
url: some_url,
success: function(){
alert('success1');
},
error: function(){
alert('error1');
}
});
jQuery.ajax({
url: some_url,
success: function(){
alert('success2');
},
error: function(){
alert('error2');
}
});
jQuery.ajax({
url: some_url,
success: function(){
alert('success3');
},
error: function(){
alert('error3');
}
});
这些总是会导致:
alert('success1');
alert('success2');
alert('success3');
或者输出可以是:
alert('success2');
alert('success3');
alert('success1');
如果我想将最后一个输出只显示给用户,我不应该在先前的AJAX请求上运行abort()
吗?我的意思是,只要success1
始终是最后一条消息,我就不介意他们看到success2
和success3
条消息。
答案 0 :(得分:0)
尝试阅读有关JavaScript Promises / A +(即此处http://www.html5rocks.com/en/tutorials/es6/promises/)
这可能会有所帮助。
它允许做smth。喜欢
doSmthAsync().then(doSmthAsyncElse()).then(...)
等等
此外,jQuery deffered可以帮助你。 http://api.jquery.com/jquery.deferred/