私は複数の関数を次々に連鎖させて約束し、それぞれの関数はAJAX呼び出しを行いたい。私はmyfunction2
を呼び出す前に実行するためにmyfunction1
のコールバックが必要になりますjQuery deferred ajax実行命令
function myfunction1() {
console.log("myfunction1");
return $.ajax({
url: "/"
}).always(function() {
console.log("myfunction1 done");
});
}
function myfunction2() {
console.log("myfunction2");
return $.ajax({
url: "/"
}).always(function() {
console.log("myfunction2 done");
});
}
myfunction1()
.then(myfunction2());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
:このような
何か。 だから私はこの順序が必要になります
myfunction1
myfunction1 done
myfunction2
myfunction2 done
が、コードサンプルは、この順序で実行します:
括弧が上がらない:
myfunction1
myfunction2
myfunction1 done
myfunction2 done
すべてのヘルプは
ソリューションをいただければ幸いです必要がありません
myfunction1().then(myfunction2);
の代わり:
'.then(myfunction2());'はすぐに関数を呼び出し、結果セットを 'then'に渡します。コールバックを '.then(myfunction2)'の代わりに渡したいとします。 – Bergi
うわー、私はほとんどこのコメントを逃した、それは私の問題を解決、巨大な感謝! – inverz
@inverz - このサイトでは、決してあなたの質問にソリューションを編集するつもりはありません。質問は質問のままにすることです。他に誰も答えを掲示せずに解決策を見つけたら、自分で回答を投稿することができます。または、他の人が回答を投稿している場合は、その回答の横にある緑色のチェックマークをチェックすることで回答を受け入れることができます。これはあなたの質問が今答えられたことをコミュニティに示します。 – jfriend00