当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Node.js ReadableStream.pipeThrough(transform[, options])用法及代码示例

readableStream.pipeThrough(transform[, options])

添加于:v16.5.0

参数
  • transform <Object>
    • readable <ReadableStream> transform.writable 将向其推送可能修改的数据的 ReadableStream 是从此 ReadableStream 接收的。
    • writable <WritableStream> WritableStream 将写入此 ReadableStream 的数据。
  • options <Object>
    • preventAbort <boolean>true 时,此 ReadableStream 中的错误不会导致 transform.writable 中止。
    • preventCancel <boolean>true 时,目标 transform.writable 中的错误不会导致此 ReadableStream 被取消。
    • preventClose <boolean>true 时,关闭此 ReadableStream 不会导致 transform.writable 被关闭。
    • signal <AbortSignal> 允许使用 <AbortController> 取消数据传输。
  • 返回: <ReadableStream> 来自 transform.readable

将此 <ReadableStream> 连接到 transform 参数中提供的 <ReadableStream> <WritableStream> 对,以便将来自此 <ReadableStream> 的数据写入 transform.writable ,可能进行转换,然后推送到 transform.readable 。配置管道后,将返回 transform.readable

当管道操作处于活动状态时,导致 readableStream.lockedtrue

import {
  ReadableStream,
  TransformStream,
} from 'node:stream/web';

const stream = new ReadableStream({
  start(controller) {
    controller.enqueue('a');
  },
});

const transform = new TransformStream({
  transform(chunk, controller) {
    controller.enqueue(chunk.toUpperCase());
  }
});

const transformedStream = stream.pipeThrough(transform);

for await (const chunk of transformedStream)
  console.log(chunk);const {
  ReadableStream,
  TransformStream,
} = require('node:stream/web');

const stream = new ReadableStream({
  start(controller) {
    controller.enqueue('a');
  },
});

const transform = new TransformStream({
  transform(chunk, controller) {
    controller.enqueue(chunk.toUpperCase());
  }
});

const transformedStream = stream.pipeThrough(transform);

(async () => {
  for await (const chunk of transformedStream)
    console.log(chunk);
})();

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 ReadableStream.pipeThrough(transform[, options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。