使用异步生成器创建可读流


【Creating readable streams with async generators】

可以使用 Readable.from() 工具方法从异步生成器创建一个 Node.js 可读流:

【A Node.js readable stream can be created from an asynchronous generator using the Readable.from() utility method:】

const { Readable } = require('node:stream');

const ac = new AbortController();
const signal = ac.signal;

async function * generate() {
  yield 'a';
  await someLongRunningFn({ signal });
  yield 'b';
  yield 'c';
}

const readable = Readable.from(generate());
readable.on('close', () => {
  ac.abort();
});

readable.on('data', (chunk) => {
  console.log(chunk);
});