我很困惑NodeJS是如何非阻塞的,即使它是单线程平台。特别是,在这段代码中,我有两个回调,其中一个回调包含一个无限循环。它永远不会显示预期的输出,在我的例子中,'thread2',但它继续以指定的间隔执行下一个回调,在我看来,这违反了单线程应用程序的事实。任何澄清都将受到高度赞赏。
setInterval(() => console.log('thread1'), 1000);
setInterval(() => function() {
console.log('thread2');
while (true) {}
}, 500);
console.log('starting');
答案 0 :(得分:4)
() => function() {
console.log('thread2');
while (true) {}
}
这是一个lambda表达式(() =>
),它返回一个函数(之后的值)。你从来没有真正称这个功能。