我能在VS Code中复现我在Node项目中遇到的问题,具体如下:
for (let i=0; i<50; i++) {
let text = [ Math.random()>0.5 ? "abc" : "ABC" ];
console.log(i);
console.log(text);
console.log("*")
}
如果我手动逐步运行,一切正常。
如果我让脚本以全速运行,在某个随机迭代中,红色的“已取消”单词会在第一个 console.log
输出其结果后被打印。从那时起,第二个 console.log(text)
要么被跳过,要么输出空字符串(无法确定)。
另外两个console.log()
语句继续输出正确的值直到循环结束。
"已取消"的颜色与我的console.error()
输出相同。
示例运行如下图所示,其中异常发生在第七次迭代之后:
我多次重复运行该脚本,每次“已取消”输出都发生在不同的迭代中。如果脚本中任何位置有断点,不一定在循环中,则不会发生“已取消”情况。
尽管有错误输出,所有变量的值似乎都是正确的。在我的实际代码中,我将text
的最终值保存到文件中,并进行了正确的验证。
这是什么情况,有什么需要担心的吗?