stream.Duplex.from(src)


用于创建双工流的实用方法。

【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。必须返回 nullundefined
  • Object ({ writable, readable })readablewritable 转换为 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
]);