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

Dan*_*umb 12 javascript node-fibers eslint

我带来了一些带有无限循环的JS代码(我们使用节点光纤来发生事情).

ESLint讨厌:

while (true) {

}
Run Code Online (Sandbox Code Playgroud)

因为条件不断.

但是允许以下内容:

for(;;) {

}
Run Code Online (Sandbox Code Playgroud)

不仅仅是喂养lintbeast,有什么客观原因,以有利于forwhile(反之亦然)?

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

Ben*_*aum 9

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

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

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

如果我们检查了eslint repo,那么在此期间它被讨论并被认为"不够重要":

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

for(;;)建议采用这种解决方法,但是每个参与者都明白这是针对这个特殊情况的黑客攻击.

禁用规则.