私はjQueryのを理解しようとしてDeferred
いますが、サンプルにもかかわらず、やりたいことを達成できません。
そこで、2 つの関数を非同期で呼び出し、両方が終了したら別の関数を呼び出したいと思います。
これが私のコードです
function1();
function2();
function3();
function1()
function2()
ASP.NET アプリケーションに ajax 呼び出しを行うと、完全に機能します。それらはfunction3()
開始前に終了する必要があります。
私はドキュメントを読んでもう一度読んでいますが、function3() は他の 2 つの終了を待ちません。私が理解できるように、私のサンプルを提供していただけますDeferred
か? 私のプロジェクトの重要な部分を完了するために、彼らが本当に必要です.
どうもありがとうございました。
ボーナス質問
.when
deferredについて読んだことがあります... function1() running、次にfunction2() running<div>
などのような要素を書き込むことができます... ?
アップデート
function1()
との詳細function2()
: これらは非常に似ています。ここに本体があります:
function function1() {
return $.ajax({
url : "@Url.Action("MyMethod", "MyController")",
contentType : "application/json; charset=utf-8",
dataType : "json"
}).done(function(data) {
$.each(data, function(index) {
pushDatas(data[index]);
})
}).fail(function (result) {
alert("function1failed");
});
}
function pushDatas(data)
{
if(!($.inArray(data, loadedDatas) !== -1)) {
loadedDatas.push(data);
}
}
更新 2
関数は次のように呼び出されます。
<script type="text/javascript">
$(document).ready(function () {
//some others asynchrounous functions
$.when(function1(), function2()).done(function3("test"));
}
...
</script>