为什么 ESLint 在 while(true) 使用纤程时触发 lint 错误?
Why does ESLint trigger lint errors on while(true) using fibers?
我得到了带有一些无限循环的 JS 代码(我们正在使用节点纤维来允许事情发生)。
ESLint 讨厌:
while (true) {
}
因为条件不变。
以下是允许的:
for(;;) {
}
除了喂养 lintbeast,还有什么 objective 理由支持 for
而不是 while
(反之亦然)?
注意:这个问题明确要求 objective 原因,因此不仅仅是基于意见。
这些关于无限循环的规则来自于生成器出现之前,甚至没有意识到纤程。
假设每个函数都不会挂起并且 returns(如生成器、async
-关键字函数或纤程),该规则对于警告循环中的常量非常有意义。
现在时代变了 - 规则不再有意义,你所做的完全没问题。
如果我们检查eslint repo,它同时被讨论并视为"not important enough to acknowledge":
I don't think this makes sense as a built-in exception. If you're doing that, then it's best to manually disable the rule in the generator using a comment.
有人提出了解决方法 for(;;)
,但所有相关人员都明白这是针对此特定案例的黑客攻击。
禁用规则。
我得到了带有一些无限循环的 JS 代码(我们正在使用节点纤维来允许事情发生)。
ESLint 讨厌:
while (true) {
}
因为条件不变。
以下是允许的:
for(;;) {
}
除了喂养 lintbeast,还有什么 objective 理由支持 for
而不是 while
(反之亦然)?
注意:这个问题明确要求 objective 原因,因此不仅仅是基于意见。
这些关于无限循环的规则来自于生成器出现之前,甚至没有意识到纤程。
假设每个函数都不会挂起并且 returns(如生成器、async
-关键字函数或纤程),该规则对于警告循环中的常量非常有意义。
现在时代变了 - 规则不再有意义,你所做的完全没问题。
如果我们检查eslint repo,它同时被讨论并视为"not important enough to acknowledge":
I don't think this makes sense as a built-in exception. If you're doing that, then it's best to manually disable the rule in the generator using a comment.
有人提出了解决方法 for(;;)
,但所有相关人员都明白这是针对此特定案例的黑客攻击。
禁用规则。