Я хотел бы знать некоторые возможные примеры использования в реальных условиях асинхронных итераторов , часть 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, что делает их итеративными. В этом случае я думаю, что их использование очень распространено и легко для понимания.
Любые мысли приветствуются.