同期関数を実行して一定時間待機する非同期forループを実行しようとしています。私のコードは次のとおりです。待機用のJavaScript非同期
function loopExec (i,imax, execFunc,param1) {
execFunc(i,param1);//Launch synchronous function which takes some time
var y=i+1;
if (y < imax) { // if the counter < imax, call the loop function
setTimeout(function() { // call a 0.1s setTimeout when the loop is called
loopExec(y,imax, execFunc,param1); // .. again which will trigger another call
}, 100);
}
else if(y==imax){
anotherFunction(param1);// The loop is over, clean up and log
}
}
私が望む動作は次のとおりです。 execFuncは、(1) - >待っ100ミリ秒 - > execFunc2->、私が持っている行動がexecFunc1です... A bit like this
を待ちますexecFunc2などはすべて100ミリ秒間隔で起動し、前回の完了を待たずに、これらの関数がファイルとやり取りするときに読み書きの競合が発生します。
これは何か関係があるのか分かりませんが、electron/nodeJSを使用しています。
あなたがしたいことを正確に実行します。 –
* "私が持っている動作は、execFunc1、execFunc2などです。前回の完了を待つことなく、すべて100ミリ秒間隔で起動します。" *上記のコードはそれをしません。あなたがしたいと言ったことをします。 https://jsfiddle.net/23ta609b/ –
約束の使い方を学ぶことができます。 – Aer0