为什么ESLint在使用光纤的同时(true)触发lint错误?

时间:2016-05-26 16:34:29

标签: javascript eslint node-fibers

我已经使用一些无限循环来获取JS代码(我们使用节点光纤来实现)。

ESLint讨厌:

while (true) {

}

因为条件不断。

但允许以下内容:

for(;;) {

}

除了喂养lintbeast之外,还有任何客观理由支持for优先于while(反之亦然)吗?

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

1 个答案:

答案 0 :(得分:8)

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

在假设每个函数永远不会挂起并返回(如生成器,async - 关键字函数或光纤)的情况下,规则对于警告循环中的常量非常有意义。

现在时代已经改变了 - 规则不再有意义,而你所做的事情完全没问题。

如果我们检查eslint repo,我们会在此期间讨论并认为“不足以承认”:

  

我认为这不是一个内置异常。如果您这样做,那么最好使用注释手动禁用生成器中的规则。

建议使用变通方法for(;;),但所有相关人员都明白这是针对此特定情况的黑客攻击。

禁用规则。