我正在尝试使用awaitNode.js中的关键字。我有这个测试脚本:
await
"use strict"; function x() { return new Promise(function(resolve, reject) { setTimeout(function() { resolve({a:42}); },100); }); } await x();
但是当我在节点上运行它时
await x(); ^ SyntaxError: Unexpected identifier
是否在Mac上使用Node.js 7.5或Node.js 8(每晚构建)使用node或node --harmony-async- await在Node.js’repl’中运行它。
node
node --harmony-async- await
奇怪的是,相同的代码在Runkit JavaScript笔记本环境中也有效:https ://runkit.com/glynnbird/58a2eb23aad2bb0014ea614b
我究竟做错了什么?
多亏了其他评论者和其他一些研究await,才可以在一个async函数中使用,例如
async
async function x() { var obj = await new Promise(function(resolve, reject) { setTimeout(function() { resolve({a:42}); },100); }); return obj; }
然后,我可以将此功能用作Promise,例如
x().then(console.log)
或在另一个异步功能中。
令人困惑的是,Node.js复制代码不允许您执行
await x();
就像RunKit笔记本环境一样。