2017-03-01 7 views
0

私は関数(a)が完了した後に関数(b)を呼び出そうとしました。 機能(a)が完了する前に警告メッセージが表示されます。 あなたの素晴らしい解決策が尊重されます。 .done()ajaxコールバック関数が順番に

の.done()は一つだけのコールバックを持っており、それが成功コールバック

.then(になる前に必ず行い、その後ため

$.ajax({ 
    url : "action.do", 
    .....code.... 
}).done(function(a){ 

    ...code... 

}).then(function(b){ 

    alert("hello"); 

}); 
+1

何をします:

$.ajax({ url : "action.do", .....code.... }).done(function(a){ ...code... alert("hello"); }); 

または

$.ajax({ url : "action.do", .....code.... }).then(function(b){ alert("hello"); }); 

を理想的に.thenは()以下のコードのようなものですそれは何か別のajax呼び出しですか? – Darshak

答えて

-1

は())成功と失敗の両方を持っていますコールバック

1

done適切な約束のように動作しませんthen機能します。これを行うには、thenを使用してajax呼び出し、例えばから約束を返すことを確認したいと思います:私はあなたがこのために少なくともjQueryのV1.8が必要と考えてい

$.ajax({ 
    url : "action.do", 
    // .....code.... 
}).then(function(a){ 
// ^^^^ 
    return $.ajax({ 
// ^^^^^^ 
     url : "action.do", 
     // .....code.... 
    }); 
}).then(function(b){ 
    alert("hello"); 
}); 

、しかしでダブルチェック使用しているバージョンでは、jQueryのDeferredを作るために複数のバージョンで多くの作業があり、Promises/A +仕様とES2015(別名「ES6」)仕様の約束と互換性があります。

-1

.then()は、約束を操作するために使用されます。 2つのコールバック、成功と失敗があります。だから、.then()の成功コールバック関数です。

あなたは、次の方法の二つにコードを変更することができます。

.then(function(){ 
    ...success case...(.done() scenario) 
},function(){ 
    ...failure case... (.fail() scenario) 
}); 
関連する問題