我认为节点7.4支持异步/等待,但是此示例不起作用:
const Promise = require('bluebird'); async function main(){ await Promise.delay(1000) } main();
结果是:
async function main(){ ^^^^^^^^ SyntaxError: Unexpected token function
如何在节点7.4上使用异步/等待?
是的,Node.js v7支持async-await,但将其锁定在harmony标志后面。尚未准备就绪的功能不在此标记后面。
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已成功移植。
async
--harmony
现在,仅--harmony当您的Node.js版本在7.0到7.5.0(含)之间时,才需要使用该标志。有关完整的变更日志,请参见此处。