哪些版本的Node.js支持异步迭代器

时间:2018-07-21 19:16:28

标签: javascript node.js

哪些版本的nodejs支持异步迭代器?并且有一种方法可以使其在旧版的nodejs中工作。

语法

for await (let content of promises) { // promises => array of promise objects
    console.log(content);
  }

2 个答案:

答案 0 :(得分:3)

V10应该支持它。这是带有和不带有异步迭代器的示例:

使用:

async function print(readable){
   readable.setEncoding('utf8');
   let data = '';
   for await (const chunk of readable) {
     data += chunk;
   }
}

print(fs.createReadStream('./yourpath'))

没有:

function print(readable){
    readable.setEncoding('utf8');
    let data = '';
    readable.on('data', chunk => data += chunk)
    readable.on('end', () => console.log(data))
}

print(fs.createReadStream('./yourfilepath'))

要与旧版本的nodeJS一起使用,可以使用babel-plugin-transform-async-generator-functions,但我确实认为babel V7随附了它。

答案 1 :(得分:1)

我已经成功地使用 8.9.1 测试了异步/等待迭代器。对于较旧的版本,所有承诺都在等待,然后在结果数组上进行迭代。