即使从MDN

时间:2019-03-22 18:41:50

标签: javascript node.js asynchronous

我从MDN复制并粘贴了一个for-await-of示例,但仍然收到一个错误消息,告诉我await是保留字。这可能与我的Javascript版本有关吗?

我尝试了几种不同的方法,包括IIFE的方法,主要是复制他人的经过验证的代码,但出现错误。

var asyncIterable = {
 [Symbol.asyncIterator]() {
   return {
    i: 0,
    next() {
      if (this.i < 3) {
        return Promise.resolve({ value: this.i++, done: false });
      }

      return Promise.resolve({ done: true });
      }
    };
  }   
};

(async function() {
   for await (let num of asyncIterable) {
     console.log(num);
   }
})();

期望它至少运行。

抛出错误:

"\index.js:32
   for await (let num of asyncIterable) {"

2 个答案:

答案 0 :(得分:2)

for-await-of开始,

v10.3.0循环为available in Node.js

要使用该语法,只需转到https://nodejs.org/en/或使用nvm来更新Node.js版本。

答案 1 :(得分:1)

如果向下滚动到specification部分,您会看到它处于“草稿”阶段,因此尚未完全指定,并且browser support也不完整。您的环境可能尚不支持。