Jquery 遅延オブジェクトに問題があります。ajax呼び出しを実行し、データをサーバーに保存する関数内にプロミスを作成しています。jQuery ajax が事前定義された遅延オブジェクトを持っていることを知っています。
var AddCodes = function(XML ){
var def = $.Deferred();
$.ajax({
type: "POST",
url: "webservicename.asmx/SaveCode",
data: "{" + XML + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
def.resolve();
},
error: function (jqXHR, status, error) {
def.reject();
}
});
return def.promise();
}
次に、このように関数を評価しています。
$.when(AddCodes(XML)).then(function(){
processData();
}
AddCodes() 関数が正常に実行された場合にのみ、データベースにデータを挿入するために別の関数を呼び出しています。どちらも従属関数だからです。
問題は、関数が deferred と評価されず、機能しなかった場合object. processData()
です。私は自分のプロジェクトに初めて遅延を使用しています。この問題を整理するのを手伝ってください。