我得到了带有一些无限循环的 JS 代码(我们正在使用节点纤维来允许事情发生)。
ESLint 讨厌:
while (true) {
}
因为条件不变。
以下是允许的:
for(;;) {
}
除了喂养 lintbeast,是否有任何客观理由支持 for
而不是 while
(反之亦然)?
注意:这个问题明确要求客观原因,因此不仅仅是基于意见。
最佳答案
这些关于无限循环的规则来自于生成器出现之前,甚至没有意识到纤程。
假设每个函数永远不会暂停和返回(如生成器、async
-关键字函数或纤程),该规则对于警告循环中的常量非常有意义。
现在时代变了 - 规则不再有意义,您正在做的事情完全没问题。
如果我们检查 eslint repo与此同时,它被讨论并被认为“不够重要,无法承认”:
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(;;)
,但所有相关人员都明白这是针对这种特殊情况的 hack。
禁用规则。
关于javascript - 为什么 ESLint 在 while(true) 使用纤程时触发 lint 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37466508/