最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在Node.js 7.5上“等待意外的标识符”

运维笔记admin13浏览0评论

在Node.js 7.5上“等待意外的标识符”

在Node.js 7.5上“等待意外的标识符”

我正在尝试Node.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

我是用nodenode --harmony-async-await运行它还是用我的Mac上的Node.js'repl'运行Node.js 7.5或Node.js 8(每晚构建)。

奇怪的是,相同的代码在Runkit JavaScript笔记本环境中起作用:

我究竟做错了什么?

回答如下:

感谢其他评论者和其他一些研究,await只能用于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 repl不允许你这样做

await x();

RunKit笔记本环境的位置。

发布评论

评论列表(0)

  1. 暂无评论