顺序ajax回调函数
问题描述:
我试图在函数(a)完成后调用函数(b)。 但是在功能(a)完成之前会出现警告消息。你的辉煌解决方案将得到尊重。顺序ajax回调函数
$.ajax({
url : "action.do",
.....code....
}).done(function(a){
...code...
}).then(function(b){
alert("hello");
});
答
因为当时()总是这样.done()
.done()只有一个回调,这是成功的回调
。后来(前)有成功和失败回调
答
done
不能像一个合适的承诺then
函数那样工作。要做到这一点,你想使用then
并确保从ajax
调用,例如返回承诺:
$.ajax({
url : "action.do",
// .....code....
}).then(function(a){
// ^^^^
return $.ajax({
// ^^^^^^
url : "action.do",
// .....code....
});
}).then(function(b){
alert("hello");
});
我相信你至少需要jQuery的V1.8这一点,但仔细检查你使用的版本,在多个版本中有很多工作要做jQuery的Deferred
和承诺与Promises/A +规范和(因此)ES2015(又名“ES6”)规范的承诺兼容。
答
.then()用于操纵承诺。它有2个回调,成功和失败。这样做的是.then()的成功回调函数。
您可以用两种下列方式修改代码:
$.ajax({
url : "action.do",
.....code....
}).done(function(a){
...code...
alert("hello");
});
或
$.ajax({
url : "action.do",
.....code....
}).then(function(b){
alert("hello");
});
理想。那么()就像下面的代码:
.then(function(){
...success case...(.done() scenario)
},function(){
...failure case... (.fail() scenario)
});
你在函数中做a()..它的任何其他ajax调用? – Darshak