javascript - 为什么 ESLint 在 while(true) 使用纤程时触发 lint 错误?

标签 javascript eslint node-fibers

我得到了带有一些无限循环的 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/

相关文章:

node.js - Node 光纤会破坏 Node 域吗?

javascript - 在对象上创建 “method” 方法

javascript - 从服务器上的 Meteor 集合中获取项目会抛出 "Can' t wait without Fiber”

javascript - Node 纤维中的运行与产量之间有什么区别

angular - eslint Angular Strict Template Checks 应该显示错误

javascript - JS 装饰器的 ESLint 意外字符 '@'

javascript - Prettier 和 eslint 缩进不一起工作

javascript - 使用点击事件隐藏和显示 div

javascript - 使用 knockout.js 将 Bootstrap 按钮类从禁用更改为启用

javascript - 我正在实现搜索,当我在搜索框中不放置任何内容时,这必须保留在同一页面上,java脚本编码是什么