Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. TransformStreamDefaultController

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

TransformStreamDefaultController

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juni 2022⁩.

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

DasTransformStreamDefaultController-Interface derStreams API bietet Methoden zur Manipulation des zugehörigenReadableStream undWritableStream.

Beim Erstellen einesTransformStream wird dasTransformStreamDefaultController erstellt. Es hat daher keinen Konstruktor. Eine Instanz vonTransformStreamDefaultController erhält man über die Callback-Methoden vonTransformStream().

Instanzeigenschaften

TransformStreamDefaultController.desiredSizeSchreibgeschützt

Gibt die gewünschte Größe zurück, um die lesbare Seite der internen Warteschlange des Streams zu füllen.

Instanzmethoden

TransformStreamDefaultController.enqueue()

Stellt ein Chunk (einzelnes Datenstück) in der lesbaren Seite des Streams in die Warteschlange.

TransformStreamDefaultController.error()

Fehler sowohl die lesbare als auch die beschreibbare Seite des Transform-Streams.

TransformStreamDefaultController.terminate()

Schließt die lesbare Seite und fehlerhaft die beschreibbare Seite des Streams.

Beispiele

Im folgenden Beispiel leitet ein Transform-Stream alle empfangenen Chunks alsUint8Array-Werte weiter, wobei die Methodenerror() undenqueue() verwendet werden.

js
const transformContent = {  start() {}, // required.  async transform(chunk, controller) {    chunk = await chunk;    switch (typeof chunk) {      case "object":        // just say the stream is done I guess        if (chunk === null) {          controller.terminate();        } else if (ArrayBuffer.isView(chunk)) {          controller.enqueue(            new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength),          );        } else if (          Array.isArray(chunk) &&          chunk.every((value) => typeof value === "number")        ) {          controller.enqueue(new Uint8Array(chunk));        } else if (          typeof chunk.valueOf === "function" &&          chunk.valueOf() !== chunk        ) {          this.transform(chunk.valueOf(), controller); // hack        } else if ("toJSON" in chunk) {          this.transform(JSON.stringify(chunk), controller);        }        break;      case "symbol":        controller.error("Cannot send a symbol as a chunk part");        break;      case "undefined":        controller.error("Cannot send undefined as a chunk part");        break;      default:        controller.enqueue(this.textencoder.encode(String(chunk)));        break;    }  },  flush() {    /* do any destructor work here */  },};class AnyToU8Stream extends TransformStream {  constructor() {    super({ ...transformContent, textencoder: new TextEncoder() });  }}

Spezifikationen

Specification
Streams
# ts-default-controller-class

Browser-Kompatibilität

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp