私はjavascriptで書かれたアプリを持っています。作業するには、たくさんのファイルをダウンロードする必要があります。長くなる可能性のあるファイルがたくさんある可能性があるため、ダウンロードを非同期にしました。
function download_all(xml, callback){
var i=0;
while(i<xml.smil.length)
{
download(xml.smil[i]);
i=i+1;
}
i=0;
while(i<xml.video.length)
{
download(xml.video[i]);
i=i+1;
}
callback(xml);
}
私の質問は: ダウンロードにはコールバックがありますが、5 つの smil と 30 のビデオがある可能性があるため、download_all のコールバックが呼び出される前にすべてのダウンロードが行われるようにするにはどうすればよいですか?
ダウンロードが完了するたびに(コールバックで)変数をインクリメントすることを考えています。
while(smildlcompleted<xml.smil.length && videodlcompleted<xml.video.length)
{
sleep(1000);
}
Cでやったように、スリープ機能が見つからず、js/node.jsの正しい構文とは反対のようです。
コールバックの前にすべてのダウンロードが完了するのを待つ方法はありますか?
他の複数の関数が完了した後にのみJavascript関数を実行する方法を見ましたか? 、問題はまったく同じであるため (funcA()、funcB()、およびすべてが完了すると funcC())、しかし私の場合、funcA() と funcB() は必要になる前に 10 回または 20 回起動できます。 funcC() を実行します。
必要なことを行うために他の質問の回答コードを変更しようとしていますが、誰かがもっと簡単な方法を知っていますか?