我在1秒后更改'aa‘的值,但是循环继续执行。
let aa = true;
setTimeout(function () {
aa = false;
}, 1000);
for (; aa; ) {
console.log('aaa');
}发布于 2021-12-11 10:08:52
你的方法不起作用是因为其他人解释的原因。您可以使用这样的东西来代替:
var started = Date.now();
while(Date.now() - started < 1000) {
console.log("aaa");
};
发布于 2021-12-11 09:47:37
setTimeout是异步,所以只有在for循环的当前代码执行完成之后才能执行。在你的情况下,它将是无限的。
一旦for循环开始执行,它将留在调用堆栈中直到完成。既然你没有给出任何条件,它就不会停止
https://stackoverflow.com/questions/70314053
复制相似问题