我已经使用一些无限循环来获取JS代码(我们使用节点光纤来实现)。
ESLint讨厌:
while (true) {
}
因为条件不断。
但允许以下内容:
for(;;) {
}
除了喂养lintbeast之外,还有任何客观理由支持for
优先于while
(反之亦然)吗?
注意:此问题明确要求客观原因,因此不仅仅是基于意见。
答案 0 :(得分:8)
关于无限循环的这些规则来自于生成器之前的东西,甚至不知道光纤。
在假设每个函数永远不会挂起并返回(如生成器,async
- 关键字函数或光纤)的情况下,规则对于警告循环中的常量非常有意义。
现在时代已经改变了 - 规则不再有意义,而你所做的事情完全没问题。
如果我们检查eslint repo,我们会在此期间讨论并认为“不足以承认”:
我认为这不是一个内置异常。如果您这样做,那么最好使用注释手动禁用生成器中的规则。
建议使用变通方法for(;;)
,但所有相关人员都明白这是针对此特定情况的黑客攻击。
禁用规则。