在节点7.4中使用async/await

Ant*_*ony 15 node.js async-await

我认为在节点7.4中支持async/await,但是这个例子不起作用:

const Promise = require('bluebird');

async function main(){
  await Promise.delay(1000)
}

main();
Run Code Online (Sandbox Code Playgroud)

结果是:

async function main(){
      ^^^^^^^^
SyntaxError: Unexpected token function
Run Code Online (Sandbox Code Playgroud)

如何在节点7.4中使用async/await?

Jyo*_*ngh 49

是的.在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参考这里.


Dmi*_*nko 14

Node.js 7.6.0几个小时前发布,它们包括v8 5.5.现在你可以使用没有标志的async/await.