Реальные примеры использования асинхронных итераторов

Я хотел бы знать некоторые возможные примеры использования асинхронные итераторы из ECMAScript 2018 в реальном мире.

Для читаемых потоков это выглядит полезным, поскольку мы могли бы легко перебирать их с помощью нового for await of. Фактически, в Node.js читаемые потоки уже имеют свойство Symbol.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, которые включают свойство Symbol.iterator с ES2015, что делает их итеративными. В данном случае я думаю, что их использование очень обширно и легко для понимания.

Любые мысли приветствуются.

В предложении уже указан пример readLines, не так ли? Применим любой сценарий, в котором обещания нужно лениво создавать по запросу. Гусеничный и т. д.

Estus Flask 10.09.2018 11:38

Каждый EventEmitter (или DOM EventTarget) можно превратить в асинхронный итератор.

Bergi 10.09.2018 13:37
0
2
56
0

Другие вопросы по теме