Javascript-JSHint支持异步/等待吗?

我正在将JSHint用于JavaScript项目(带有Visual Studio Code)。 在这个项目中,我使用async / await,JSHint将其突出显示为错误。

我尝试设置jshint,但似乎“ esversion”的最大版本为6。

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

4个解决方案
45 votes

更新(2019年2月):从2.10.1版本开始支持异步/等待。 只需更新您的.jshintrc以使用"esversion": 9。(+信息:版本更改日志)


更新(2018年7月):随着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中支持等待/异步的唯一可行的方法。


JSHINT IGNORE(指令)

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

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */

要么:

ignoreThis(); // jshint ignore:line

当我们的代码中有大量异步/等待引用时,我个人发现这种缓解措施很肮脏且令人困惑。 但是更令人困惑和肮脏的是JSHINT警告和错误;)

colxi answered 2020-08-07T04:31:03Z
13 votes

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。]。

jfriend00 answered 2020-08-07T04:31:46Z
3 votes

注意:按照“接受的答案”中的建议使用分叉的JSHINT-ESNEXT软件包(NPM和github)要求设置“实验性”选项。

/* experimental: [asyncawait, asyncreqawait] */

要么

/* experimental: [asyncawait, asyncreqawait] */

有关详细信息,请参见此处的源代码。

JoelABair answered 2020-08-07T04:32:21Z
1 votes

OP询问是否有任何解决方法。 这很麻烦,但是我已经用'async / ** /'和'await / ** /'替换了所有的'async'或'await'。 然后,一个快速脚本将它们交换为'/ * async * /'和'/ * await * /'使我可以使用jshint进行检查。

它虽然不漂亮,但可以喂牛头犬。

JohnN answered 2020-08-07T04:32:46Z
translate from https://stackoverflow.com:/questions/42637630/does-jshint-support-async-await