stream.Duplex.from(src)
src<Stream> | <Blob> | <ArrayBuffer> | <string> | <Iterable> | <AsyncIterable> | <AsyncGeneratorFunction> | <AsyncFunction> | <Promise> | <Object> | <ReadableStream> | <WritableStream>
用于创建双工流的实用方法。
【A utility method for creating duplex streams.】
Stream将可写流转换为可写Duplex,将可读流转换为Duplex。Blob转换为可读Duplex。string转换为可读Duplex。ArrayBuffer转换为可读Duplex。AsyncIterable转换为可读Duplex。不能产出null。AsyncGeneratorFunction转换为可读/可写的转换Duplex。必须以源AsyncIterable作为第一个参数。不能产出null。AsyncFunction转换为可写Duplex。必须返回null或undefined。Object ({ writable, readable })将readable和writable转换为Stream,然后将它们组合为Duplex,其中Duplex将写入writable并从readable读取。Promise转换为可读Duplex。值为null时将被忽略。ReadableStream转换为可读Duplex。WritableStream转换为可写Duplex。- 返回:<stream.Duplex>
如果将包含 Promise 的 Iterable 对象作为参数传入,可能会导致未处理的拒绝。
【If an Iterable object containing promises is passed as an argument,
it might result in unhandled rejection.】
const { Duplex } = require('node:stream');
Duplex.from([
new Promise((resolve) => setTimeout(resolve('1'), 1500)),
new Promise((_, reject) => setTimeout(reject(new Error('2')), 1000)), // Unhandled rejection
]);