异步迭代器用法的真实示例

时间:2018-09-10 09:15:00

标签: javascript node.js async-iterator ecmascript-2018

我想知道ECMAScript 2018一部分asynchronous iterators的一些实际用法示例。

对于可读流,它看起来很有用,因为我们可以使用新的for await of轻松地对其进行迭代。实际上,在Node.js中,可读流已经具有实现为experimental featureSymbol.asyncIterator属性:

const fs = require('fs');

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

print(fs.createReadStream('file')).catch(console.log);

但是我想不出其他好的用法。

对于同步迭代器,我们拥有原生对象(如Array或Map),自ES2015开始就包含Symbol.iterator属性,使其可迭代。在这种情况下,我认为它们的使用范围很广并且易于理解。

任何想法都值得赞赏。

0 个答案:

没有答案