【发布时间】:2016-10-06 12:54:00
【问题描述】:
我正在尝试运行一个异步 for 循环,该循环运行一个同步函数,然后等待一段时间。我的代码是:
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-> 等待... A bit like this
我的行为是 execFunc1、execFunc2 等都以 100 毫秒的间隔启动,而不等待前一个完成,导致这些函数与文件交互时发生读/写冲突。
我不知道这是否与它有关,但我正在使用电子/nodeJS。
【问题讨论】:
-
正是您想要做的。请清楚
-
“我的行为是 execFunc1、execFunc2 等都以 100 毫秒的间隔启动,而不等待前一个完成” 上面的代码不做那。它做你说你想让它做的事情。 jsfiddle.net/23ta609b
-
你可以学习如何使用 Promise。
-
@T.J. Crowder:感谢您的链接,但使用我使用的 execFunc,它不起作用......我不明白为什么。
-
@Aer0 :我开始研究承诺,但我对这个概念还是很陌生
标签: javascript node.js for-loop asynchronous electron