質問:
新しい非同期関数を開始する非同期関数を待つことはできますか?
詳細:
コードを続行する前、または特定の関数またはコード ブロックを実行する前に、非同期関数が終了するのを待つ方法をいくつか調べました。しかし、非常に長い間私を悩ませていたことが 1 つあります。開始された新しい非同期関数も待機しているのか、それとも独自のコードを考慮する必要があるのか わかりません。
擬似コード:
var value = 1;
af1();
alert(value);
async function af1(){
af2();
}
async function af2(){
af3();
}
async function af3(){
value = 2;
}
これが良い例 (または正しい構文) であるかどうかはわかりませんが、非同期関数を、完了するまでに時間がかかる ajax 要求として考えてください。af1 に延期された jQuery を追加すると、af1 のみを待機し、af2 と af3 を無視するようになると思います。一部の関数には外部の JavaScript ファイルも使用していますが、そこで開始される新しい関数を実際に制御することはできません。
繰り返しになりますが、これらすべてを何かにラップして、すべてが完了した後にコードを実行することは可能ですか? それとも、jQuery の deferred 関数と .done 関数について誤解していますか??