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或undefinedObject ({ 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
]);