Aller au contenu

node:stream

Readable, Writable, Duplex, Transform et utilitaires de composition.

Sur cette page

Elide exporte Readable, Writable, Duplex, Transform et PassThrough. L’exemple vérifié ci-dessous couvre Readable.from, des hooks Transform et Writable personnalisés et l’achèvement d’un pipeline à base de Promise.

Exemple de pipeline

Utilisez node:stream/promises lorsque vous attendez pipeline :

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 et finished de node:stream utilisent des signatures à callbacks. Leurs formes renvoyant des Promise sont exportées par node:stream/promises.

Surface supplémentaire

  • Readable.from, Readable.wrap et l’itération asynchrone
  • des consommateurs à Promise tels que toArray, forEach, some, every, find et reduce
  • des transformateurs de flux tels que map, filter, flatMap, drop et take
  • compose, addAbortSignal, des prédicats d’état et des utilitaires de high-water mark
  • node:stream/iter, une extension Elide fournissant des utilitaires de conversion d’itérateurs

Consultez la documentation stream de Node.js pour les signatures standard des classes et des hooks.

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.

Cette page vous a-t-elle aidé ?