私はjQueryの延期について読んでいますが、それらの使用方法を完全に理解することはできません。
私は次の深くネストされたコードを持っています
Repository.Projects.GetStages(function (data) {
var stagesXml = $.parseXML(data.d);
Repository.Projects.GetBenefits(function (data) {
var benefitsXml = $.parseXML(data.d);
Repository.Projects.GetPriorities(function (data) {
var prioritiesXml = $.parseXML(data.d);
Repository.Projects.GetDifficulties(function (data) {
var difficultiesXml = $.parseXML(data.d);
Repository.Projects.GetFactors(function (data) {
var factorsXml = $.parseXML(data.d);
Repository.Projects.GetRatings(function (data) {
var ratingsXml = $.parseXML(data.d);
Repository.Projects.GetProjectRatings(selectedPersonIdEncrypted, passDate, function (data) {
var dataDoc = UTL.Utility.prototype.setDomDocument(data.d);
var xsltDoc = UTL.Utility.prototype.setXslt("Xslt/UserRating/ProjectRatings.xslt");
var html = UTL.Utility.prototype.transform(dataDoc, xsltDoc, [
['stages', stagesXml],
['benefits', benefitsXml],
['priorities', prioritiesXml],
['difficulties', difficultiesXml],
['factors', factorsXml],
['ratings', ratingsXml]
]);
$('#Project', $content).html(html);
});
});
});
});
});
});
});
各Repository.Projects.*
メソッドには、データを取得するための非同期呼び出しが含まれています。渡される関数はコールバックであり、成功時に結果のデータが渡されます。リポジトリはジェネリック関数でエラーを処理するので、エラー関数を渡す必要はありません。xslt変換の前に、これらのそれぞれが呼び出され、データが返されることを確認する必要があります。
すべてのメソッドはRepository.Projects.*
次のようになります
GetStages: function (successCallback) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "DataRepository.asmx/GetStages",
cache: false,
data: JSON.stringify({}),
dataType: "json",
success: successCallback,
error: Repository.FailureCallback
});
}
これを書き直せるはずなのに、どうしたらいいのかわからない。