更新: 我有一個完全不同的問題,我會一起刪除問題,但因爲有答案,我不被允許。 /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