我认为在节点7.4中支持async/await,但是这个例子不起作用:
const Promise = require('bluebird'); async function main(){ await Promise.delay(1000) } main();
结果是:
async function main(){ ^^^^^^^^ SyntaxError: Unexpected token function
如何在节点7.4中使用async/await?
是的.在Node.js v7中支持async-await,但是它被锁定在harmony
标志后面.尚未生产的功能就在这面旗帜的背后.
要在Node.js v7中使用async-await,只需使用此标志运行Node服务 -
node --harmony-async-await app.js
async-await的正式版本将针对将于4月推出的Node.js v8.
您可以按照此拉取请求检查其状态.基本上async-await的正确运行取决于V8引擎v5.5与Node.js的集成.目前Node.js使用V8 v5.4,这是由这个拉取请求解决的.
更新1 - 似乎V8 v5.5可能会来到Node.js v7.请按照此拉取请求获取更多详细信息
更新2 - 好消息!Node.js版本7.6.0现在正式支持async
函数而不使用--harmony
标志,因为V8引擎5.5已成功移植.
现在,只有--harmony
在Node.js版本介于7.0到7.5.0(含)之间时才需要使用该标志.有关完整的changelog参考这里.
Node.js 7.6.0几个小时前发布,它们包括v8 5.5.现在你可以使用没有标志的async/await.