當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。