【发布时间】:2017-02-10 12:11:25
【问题描述】:
当我放置此代码以保证不需要执行结果时:
await resultNotNeeded(bla, foo);
我收到了这个 eslint 错误:
[eslint] 期望一个赋值或函数调用,而是看到一个 表达。 (没有未使用的表达式)
如果代码是这样的:
const dummy = await resultNotNeeded(bla, foo);
那么eslint报错就是:
[eslint] 'dummy' 已定义但从未使用过(no-unused-vars)
任何人都知道应该如何解决这个问题(我知道我可以这样做// eslint-disable-line no-unused-expressions但我正在寻找这个语句是否有更好的语法。
【问题讨论】:
-
如果异步代码失败怎么办?
-
好吧,如果您不需要结果,那么它是一个未使用的表达式。只需禁用规则即可。
-
诚然,这是规则中的一个错误。如果他们想允许函数调用产生副作用,他们也应该允许
await表达式。请在 eslints 问题跟踪器上报告。 -
@thefourtheye,对于这种情况,我认为这不是问题所在,await 被包围在
try {} catch {}块中,我没有在这里写它以简化问题并将问题集中在问题上。 @bergi,谢谢,是eslint没有更新的问题 -
“这是否意味着我不能在 node 中使用它与 babel?” 不,Babel 允许您使用尚未原生支持的(未来)功能。这正是 Babel 使您能够做到的。 “有什么含义?” 只是这还不是语言的正式部分。 “是否总是需要 polyfill?” 一旦该功能正式成为该语言的一部分,引擎将原生支持它(sonner 或更高版本)。 ES7(ES2016)于今年 6 月左右发布。
async/await目前是计划于明年发布的提案:github.com/tc39/proposals/blob/master/finished-proposals.md
标签: javascript async-await lint eslint ecmascript-2017