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

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

jshint支持异步/等待吗?如果有,如何打开它?如果没有,有什么解决办法吗?

推荐答案

Update (February 2019):Async/await现在从2.10.1版开始受支持.只需更新你的密码.jshintrc使用"esversion": 9.(+信息:Version changelog)


Update (july 2018):Async/await将随着JsHint 2.10.0的发布而到来+信息:https://github.com/jshint/jshint/pull/3273


JSHINT发展社区认为:

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

JSHINT-ESNEXT(软件包)

然而,有一个unnoficial JSHINT package,其中包含experimental support for await/async,称为JSHINT-ESNEXT.

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

判断Npm Packagesource in github

Installation:$npm安装-g JSNEXT

目前(2017年7月),这是在JSHINT中支持wait/async的唯一一种合适的可用方法.


JSHINT忽略(指令)

一种常见的建议解决方法或缓解措施是使用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警告和错误;)

Node.js相关问答推荐

CloudTasksClient在Firebase Function % s onDocumentCreated中实例化时导致错误

自动将Selify打开的Chrome窗口移动到Mac OS中的第三个显示器

从MongoDB获取Tree数据

未显示NPM版本

在 NodeJS 中使用 post 时出现错误 500TypeError: 无法解构 'req.body' 的属性 'name',因为它未定义

如何获取mongoose中单个id数据的记录

Indexeddb 获取所有不同于特定值的记录

在 nodejs 中使用 multer 上传文件返回未定义的 req.file 和空的 req.body

Node.js |如何在微服务之间转发标头?

多个 Axios 请求合并

错误:无法检测到网络(event="noNetwork",code=NETWORK_ERROR,version=providers/5.6.8)

使用 .pipe(res) 向客户端发送音频不允许您搜索?

为什么 req.params.id 返回 undefined未定义?

Handlebars:访问已被拒绝解析来自的属性,因为它不是其父级的自己的属性

Mongodb v4.0 Transaction, MongoError: Transaction numbers are allowed on a replica set member or mongos

具有多个条件的mongoose 查找

我可以在 Heroku 中运行咖啡脚本吗?

Node.js:socket.io 关闭客户端连接

响应分块时获取整个响应正文?

找不到在 docker compose 环境中运行的 node js 应用程序的模块