更新: 我有一个完全不同的问题,我会一起删除问题,但因为有答案,我不被允许。 /OP如果我想要一个异步线程,我需要setTimeout吗?
我有一个脚本,这是非常复杂的,很难提炼,但这里是我在做什么本质:
var modulesCount = 4;
// setup the modules object
for (var i = 1; i <= modulesCount; i++) {
composeModule(i);
}
我有一些奇怪的行为,这里是好像每次调用函数composeModule()
没有被创建,所以我想,我将不得不使用一个setTimeout
为了将线程分成像这样的4个不同的线程?这样说:
// setup the modules object
for (var i = 1; i <= modulesCount; i++) {
setTimeout(function() {
composeModule(i);
}, 1);
}
------------------- UPDATE
试过这种
var c = 1;
for (var i=1;i<=modulesCount;i++) {
console.error('actual count is: '+c+' while variable i is: '+i);
self.composeModule(i,initialCall);
c++;
}
,以检查是否存在问题与我的变量,但它对每个控制台输出中的c是同样的。还是我误解了你们的观点?
JavaScript并不是真正的多线程语言 –
为什么你认为所有的函数调用都没有做,为什么会在'setTimeout'调用中修复它?我根本没有跟进。 –
您可以使用'console.log'或** https://github.com/flatiron/winston**在代码中记录一些消息吗?我很难相信循环不会调用'composeModule'四次。也许你的问题在别的地方。 – Jess