在使用 ESLint 进行代码检查的过程中,你可能会遇到 'await' is not allowed 的错误。这个错误信息表示你的代码中使用了 ECMAScript 新特性 await,而你的 ESLint 配置并没有开启相应的支持。
那么该怎么解决这个问题呢?下面我们来介绍一些解决方法。
方法一:在 .eslintrc 中开启支持
ESLint 支持通过配置文件 .eslintrc 来开启对 ECMAScript 新特性的支持。在 .eslintrc 中,可以通过设置 ecmaVersion 的值为 2017 或更高来开启对 await、async 等语法的支持。
{ "parserOptions": { "ecmaVersion": 2017 } }
这样设置之后,ESLint 就会认为 await 是合法的语法,不再报错了。
方法二:升级 ESLint 版本
另外一个解决方法是升级 ESLint 到最新版本。新版本的 ESLint 针对 ECMAScript 新特性的支持更加完善,如果你升级到了 ESLint 5.0 或更高版本,就不需要再特别设置 ecmaVersion 了。
方法三:使用 eslint-plugin-promise
如果你在项目中使用了 Promise,或者使用了类似于 async/await 的语法,可以尝试使用 eslint-plugin-promise 插件来提供支持。这个插件可以让 ESLint 完全支持 Promise 相关的语法。
首先,你需要安装 eslint-plugin-promise:
npm install --save-dev eslint-plugin-promise
接着,在 .eslintrc 中启用插件:
{ "plugins": [ "promise" ] }
最后,在 rules 中添加相应的规则:
{ "rules": { "promise/avoid-new": "error" } }
你也可以直接在命令行中使用 eslint-plugin-promise,比如:
eslint --plugin promise file.js
方法四:禁用 ESLint 规则检查
如果你确定自己的代码是正确的,但是一些 ESLint 规则检查错报了 await 相关的错误,可以临时禁用规则检查来避免错误的出现。比如可以在代码中使用 /* eslint-disable / 来禁用整个文件的规则检查,或者 / eslint-disable-next-line */ 来禁用下一行的规则检查。
这个方法不是推荐的做法,因为它会让代码检查变得不严谨,但是它可以临时解决 ESLint 错误的问题。
/* eslint-disable */ async function foo() { // do something }
总结
在开发前端代码的过程中,使用 ESLint 进行代码检查可以让我们发现可能存在的问题,并提前改正。但是,有时候我们会遇到 ESLint 报 'await' is not allowed 的错误,这时候我们需要采取相应的解决方案,比如在 .eslintrc 中开启支持、升级 ESLint 版本、使用 eslint-plugin-promise 插件等。同时,我们还可以通过临时禁用规则检查来临时解决错误的问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64eaafd2f6b2d6eab35828cd