JSHint是否支持async/await?

Ale*_*aya 43 javascript node.js jshint visual-studio-code

我正在使用JSHint作为JavaScript项目(使用Visual Studio代码).在这个项目中我使用async/await,JSHint突出显示为错误.

我试图设置jshint,但似乎"esversion"的格言版本是6.

jshint是否支持异步/等待?如果是,如何打开它?如果没有,是否有任何解决方法?

col*_*lxi 45

更新(2019年2月):自版本2.10.1起,现在支持Async/await.只需更新您的.jshintrc即可使用"esversion": 9.(+信息:版本更改日志)


更新(2018年7月):Async/await将随着JsHint 2.10.0的发布而到达.+ info:https://github.com/jshint/jshint/pull/3273


JSHINT开发社区认为:

  • 在开始实现ES7功能之前,JSHINT应首先支持所有ES6语法.
  • 异步函数仅在第1阶段,因此语法可能会发生很大变化

JSHINT-ESNEXT(包装)

但是,有一个非正式的JSHINT包,它包含对await/async的实验性支持,称为JSHINT-ESNEXT.

作者@ marcominetti使用官方JSHint 2.7 Master分支,并介绍了这个来自Seb Vincent esnextnext分支的ES7功能.

检查Npm包,以及github中源代码

安装:$ npm install -g jshint-esnext

现在(2017年7月)这是在JSHINT中支持await/async的唯一合适的方法.


JSHINT IGNORE(指令)

常见的建议解决方法或缓解措施是使用JSHINT ignore指令.

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
Run Code Online (Sandbox Code Playgroud)

要么:

ignoreThis(); // jshint ignore:line
Run Code Online (Sandbox Code Playgroud)

当我们的代码有大量的异步/等待引用时,我个人发现这种缓解做法,肮脏和混乱.但JSHINT警告和错误更令人困惑和肮脏;)


jfr*_*d00 13

jshint是否支持异步/等待?

不,尚未截至2017年初.

它似乎还没有支持async/await.在jsHint工作的人们决定不支持,async/await直到标准处于后期阶段(显然之前通过在他们仍在改变时过早地支持事物而被烧毁) - 虽然实现已经存在(Babel,nodejs等......).

如果你按照这个jsHint开放问题线程,它仍然是一个未解决的问题,截至7和11天前的最新评论.

如果没有,是否有任何解决方法?

截至2017年7月,似乎有一个名为jshint-esnext的jsHint代码的分支,它支持async/await:https://www.npmjs.com/package/jshint-esnext .