我試圖在函數(a)完成後調用函數(b)。 但是在功能(a)完成之前會出現警告消息。你的輝煌解決方案將得到尊重。順序ajax回調函數
$.ajax({
url : "action.do",
.....code....
}).done(function(a){
...code...
}).then(function(b){
alert("hello");
});
我試圖在函數(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