使用ixjs/AyncIterable时for await未用变量遭ESLint报错的疑问
解决AsyncIterable启动流时ESLint未使用变量的问题
替代写法
- 使用下划线
_作为占位变量
JavaScript里没有专门跳过迭代变量的语法,但行业里普遍用下划线_来表示“这个变量是故意不用的占位符”,ESLint通常会识别这个约定(只要你的配置没特别限制)。代码可以改成:
for await (let _ of asyncIterable);
- 利用Ix.js的内置方法
既然你用的是Ix.js,它的AsyncIterable提供了forEach方法,能直接触发流处理,不用写for await循环:
await asyncIterable.forEach(() => {});
这个方法会遍历整个异步迭代器,空回调就能达到启动流的目的,完全不会产生未使用的变量。
ESLint报错的原因
ESLint的no-unused-vars规则核心是为了减少冗余代码、提前发现潜在bug:
- 声明变量却不用属于冗余代码,会不必要地占用内存;
- 也有可能是开发者的疏忽——本来打算用这个变量处理数据,结果漏写了逻辑,规则能帮你提前排查这类问题。
内容的提问来源于stack exchange,提问作者Marinos An
相关产品推荐
相关产品推荐

