同じ非同期関数を複数回呼び出す必要がありますが、1 回の呼び出しが完了するまで (つまり、コールバック関数が実行されるまで) 呼び出す必要はありません。したがって、私のコードは次のようになります。
syncFunc(a, function() {
syncFunc(b, function() {
syncFunc(c, function() {
syncFunc(.....)
});
});
});
どういうわけかこれを短縮することは可能ですか?私の最初のアイデアは、次のような for ループを使用することでした。
syncParams = [a, b, c, ...];
for(var i = 0;; i++) {
syncFunc(syncParams[i], function() {
if(i < syncParams.length - 1) {
alert('finished');
break;
} else {
continue;
}
}
}
しかし、ループへの継続と中断のための接続がないため、明らかにこれは機能しません。私の他のアイデアは、間隔を使用して 1 つの非同期呼び出しが終了したかどうかを毎秒チェックし、次のパラメーターを使用して次の非同期呼び出しを呼び出すことでしたが、これは複雑すぎるようです。ライブラリを使わずに簡単な方法はありますか?
編集:誰もライブラリの問題を理解していないため:私は PhoneGap モバイルアプリを開発しており、現在使用している IDE では、サードパーティのライブラリを含めることはあまり喜ばしくありません。また、これがどのように機能するのか興味がありました。