NodeJS中能否在for await循环内使用continue语句?
问题解答:for await循环中使用continue的合法性与ESLint处理
1. 语法合法性
可以在for await...of循环中使用continue语句,这是JavaScript语法明确允许的。你的代码逻辑完全有效,continue会正常跳过当前迭代,直接进入下一次循环。
2. ESLint报错原因
你遇到的Unexpected use of continue statement.eslintno-continue报错,是因为启用了ESLint的no-continue规则。这个规则属于代码风格规范,目的是避免continue/break这类跳转语句,让循环逻辑更线性易读,并非语法层面的错误。
3. 解决方案
方案一:临时关闭ESLint规则
如果想保留continue的写法,可以在代码行上方添加注释,临时禁用该规则:
for await (const ele of offCycles) { if ((await MlQueueModel.find({ uuid: ele.uuid })).length !== 0) { // eslint-disable-next-line no-continue continue; } // <do something> }
也可以在文件顶部添加/* eslint-disable no-continue */,允许整个文件使用continue。
方案二:重构代码避免使用continue
遵循no-continue规则的话,可以把后续逻辑放在条件判断的分支里,同样实现“条件成立时跳过当前循环”的效果:
for await (const ele of offCycles) { const queueItems = await MlQueueModel.find({ uuid: ele.uuid }); // 仅当查询结果为空时执行后续逻辑 if (queueItems.length === 0) { // <do something> } }
内容的提问来源于stack exchange,提问作者saados
相关产品推荐
相关产品推荐

