比方说,我有这样的代码:在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
和上面的代码会被分裂成单独的文件等)
另一个问题:忘记的节点上,一般来说:在单一过程中的任何语言中,两种功能是否可以在同一时间执行(即以与上述相同的方式)?