比方說,我有這樣的代碼:在NodeJS中:兩個回調是否可以同時執行?
function fn(n)
{
return function()
{
for(var k = 0; k <= 1000; ++k) {
fs.writeSync(process.stdout.fd, n+"\n");
}
}
}
setTimeout(fn(1), 100);
setTimeout(fn(2), 100);
難道1
和2
將被打印到stdout
互換(例如12121212121...
)?
我已經測試過這個,它們沒有交替使用,即1111111...222222222...
,但是很少有測試遠不能證明,我擔心可能會發生類似111111211111...2222222...
的事情。
換句話說:當我在Node中註冊一些回調函數和事件處理函數時,兩個回調函數可以同時執行嗎?
(我知道這可能是可能與發射兩個過程,但我們將有兩個stdout
和上面的代碼會被分裂成單獨的文件等)
另一個問題:忘記的節點上,一般來說:在單一過程中的任何語言中,兩種功能是否可以在同一時間執行(即以與上述相同的方式)?