21

我有一些无限循环的 JS 代码(我们使用节点纤维来允许事情发生)。

ESLint 讨厌:

while (true) {

}

因为恒定的条件。

但以下是允许的:

for(;;) {

}

除了喂 lintbeast 之外,还有什么客观的理由支持forwhile反之亦然)吗?

注意:这个问题明确要求客观原因,因此不仅仅是基于意见。

4

1 回答 1

10

这些关于无限循环的规则来自于生成器出现之前,甚至不知道光纤。

在假设每个函数都不会挂起和返回(如生成器、async-keyword 函数或纤程)的假设下,该规则对警告循环中的常量很有意义。

现在时代变了——规则不再有意义,你所做的一切都很好。

如果我们检查eslint 存储库,它同时被讨论并被认为“不够重要,无法承认”:

我认为这作为内置异常没有意义。如果您这样做,那么最好使用注释手动禁用生成器中的规则。

提出了解决方法for(;;),但所有相关人员都明白这是针对这种特殊情况的一种破解方法。

禁用规则。

于 2016-05-26T16:37:35.160 回答