gpt4 book ai didi

javascript - Node 不允许 if 语句不带大括号?

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:59 24 4
gpt4 key购买 nike

发生了一些奇怪的事情。我刚刚升级到 Node v0.10.18.. 我的一个测试在意想不到的地方失败了.. 看起来我无法再执行没有大括号的 if 语句。

if(false)
console.log('shouldn't be printed');

在上面的示例中,即使 if 语句失败,文本也会被打印。但在下面的测试中不打印;

if(false) {
console.log('shouldn't be printed');
}

if(false) console.log('shouldn't be printed');

有什么我遗漏的吗, Node 一直都是这样吗?

编辑:我刚刚注意到这只在使用 Mocha 时才会发生。代码在node中运行正常。有什么想法可以使用 Mocha 来实现这一点吗?

EDIT2:感谢大家的回答,我的例子很简单,实际上 Mocha 深入到我的目录中的文件中,但是当我使用 Node 检查器单步执行代码时,我发现即使那些 if 语句的计算结果为 false,它也会进入下一行并执行回调行,这会中断我的调用。我无法在其他地方重新创建它,但我对它是如何发生的感到惊讶

EDIT3:好吧,伙计们,除了告诉你们我在哪里看到它发生之外,我无法重现这个问题。我只是想为这里的开源项目做出贡献 https://github.com/jugglingdb/mysql-adapter在 lib/mysql 中,到最后几行(大约 10 行)(下面链接),它检查 filter.where 和 filter.update,这就是问题发生的地方。如果我添加大括号,测试就会通过,如果不添加大括号,测试就不会通过

https://github.com/jugglingdb/mysql-adapter/blob/master/lib/mysql.js 890 行在这里

测试它的执行位置: https://github.com/jugglingdb/mysql-adapter/blob/master/test/migration.test.js第 291 行..它不在那里,但对 err 的检查将返回第 890 行抛出的错误

最佳答案

该项目正在使用名为 semicov 的模块它在 if 行后面加上分号。实际上在项目本身中注意到,有人损坏的提交以某种方式进入了存储库

关于javascript - Node 不允许 if 语句不带大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18792964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com