Zum Inhalt springen

node:stream

Readable, Writable, Duplex, Transform und Hilfsfunktionen zur Komposition.

Auf dieser Seite

Elide exportiert Readable, Writable, Duplex, Transform und PassThrough. Das folgende geprüfte Beispiel behandelt Readable.from, eigene Hooks für Transform und Writable sowie den Promise-basierten Abschluss einer Pipeline.

Pipeline-Beispiel

Verwenden Sie node:stream/promises, wenn Sie auf pipeline warten:

import { Readable, Transform, Writable } from "node:stream";
import { pipeline } from "node:stream/promises";

const output = [];
const source = Readable.from(["a", "b"]);
const upper = new Transform({
  transform(chunk, _encoding, callback) {
    callback(null, String(chunk).toUpperCase());
  },
});
const sink = new Writable({
  write(chunk, _encoding, callback) {
    output.push(String(chunk));
    callback();
  },
});

await pipeline(source, upper, sink);
console.log(output.join("")); // AB

pipeline und finished aus node:stream verwenden Signaturen im Callback-Stil. Ihre Formen, die Promises zurückgeben, werden von node:stream/promises exportiert.

Weitere Oberfläche

  • Readable.from, Readable.wrap und asynchrone Iteration
  • Promise-Verbraucher wie toArray, forEach, some, every, find und reduce
  • Stream-Transformatoren wie map, filter, flatMap, drop und take
  • compose, addAbortSignal, Zustandsprädikate und Hilfsfunktionen für High-Water-Marks
  • node:stream/iter, eine Elide-Erweiterung mit Hilfsfunktionen zur Iterator-Konvertierung

Die üblichen Klassen- und Hook-Signaturen finden Sie in der Node.js-Dokumentation zu stream.

Reference

Status: Partial · 215 of 238 suite tests pass (90.3%) · since 1.1.0

Exports

ExportKindStatusNotes
ReadableclassFullreadable, readableEnded, readableFlowing, readableHighWaterMark, readableLength, readableObjectMode, readableEncoding, destroyed, read(), setEncoding(), pause(), resume(), isPaused(), unpipe(), unshift(), wrap(), push(), destroy(), pipe(), toArray(), forEach(), some(), every(), find(), reduce(), map(), filter(), flatMap(), drop(), take()
WritableclassFullwritable, writableEnded, writableFinished, writableHighWaterMark, writableLength, writableObjectMode, writableCorked, destroyed, write(), end(), cork(), uncork(), destroy(), setDefaultEncoding()
DuplexclassFullwritable, writableEnded, writableFinished, writableHighWaterMark, writableLength, writableObjectMode, writableCorked, write(), end(), cork(), uncork(), setDefaultEncoding()
TransformclassFull
PassThroughclassFull
ReadablepropertyFullThe Readable stream class
WritablepropertyFullThe Writable stream class
DuplexpropertyFullThe Duplex stream class
TransformpropertyFullThe Transform stream class
PassThroughpropertyFullThe PassThrough stream class
pipelinepropertyFullPromise-based pipeline() utility for composing stream pipelines with error propagation
finishedpropertyFullPromise-based finished() utility that resolves/rejects when a stream completes or errors
composepropertyFullComposes streams into a single Duplex; pipes them and returns a Duplex that writes to the head and reads…

Not implemented

stream/web.ReadableStreamTee.

Tests: node-api node:streams: 215 pass, 22 fail, 1 error, 9 skipped. Failing: test-stream-auto-destroy.js, test-stream-compose.js, test-stream-consumers.js, test-stream-destroy.js, test-stream-duplex-from.js, test-stream-duplex.js, test-stream-iter-disabled.js, test-stream-iter-readable-interop-disabled.js, and 15 more.

War diese Seite hilfreich?