【发布时间】:2019-04-25 19:54:02
【问题描述】:
我正在 Viusal Studio Code 中运行一个非常基本的 javascript 代码。但是我没有看到回调函数被触发。
我试图了解 setTimeout() 在 javascript 中的工作原理。我在 Visual Studio 代码中运行以下代码(在名为 test.js 的文件中),如下所示:
节点测试.js
'use strict'
let timerexpired = false;
setTimeout( function() {console.log(`setting timerexpired to true...`);
timerexpired = true;
},
5000);
while(1) {
console.log(`timerexpired = `, timerexpired);
if (timerexpired) {
console.log(`timer expired. Resume execution`);
break;
} else {
console.log(`keep on spinning`);
}
}
预计循环会在 5000 毫秒后中断。但它继续旋转,输出为“继续旋转”
【问题讨论】:
-
你的循环正在阻止其他任何东西的执行。
标签: javascript node.js