【发布时间】:2021-01-27 07:07:13
【问题描述】:
我能够重现我在 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 的最终值保存到了一个文件中,并且它们正确检出。
发生了什么,有什么需要担心的吗?
【问题讨论】:
-
VSCode 开发者工具中有什么可疑之处吗?
-
我无法重现
Cancelled输出,我觉得奇怪的是,在使用调试器单步执行时会显示text,但如果您使用console.log(text[0]);,则在没有断点的情况下运行时不会记录任何内容总有输出 -
@rioV8 是的,如果我将其更改为 text[0] 则没有异常。
标签: node.js visual-studio-code