ReadableStreamDefaultController: enqueue() Methode

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die enqueue() Methode der ReadableStreamDefaultController Schnittstelle reiht ein gegebenes Chunk in den zugehörigen Stream ein.

Syntax

js
enqueue(chunk)

Parameter

chunk

Das Chunk, das eingereiht werden soll.

Rückgabewert

Keiner (undefined).

Ausnahmen

TypeError

Wird ausgelöst, wenn das Quellobjekt kein ReadableStreamDefaultController ist.

Beispiele

Im folgenden einfachen Beispiel wird ein benutzerdefinierter ReadableStream mithilfe eines Konstruktors erstellt (siehe unser Einfaches zufälliges Stream-Beispiel für den vollständigen Code). Die start()-Funktion erzeugt jede Sekunde einen zufälligen Textstring und reiht ihn in den Stream ein — siehe controller.enqueue(string). Eine cancel()-Funktion wird ebenfalls bereitgestellt, um die Erzeugung zu stoppen, falls ReadableStream.cancel() aus irgendeinem Grund aufgerufen wird.

Wenn eine Taste gedrückt wird, wird die Erzeugung gestoppt, der Stream wird mit ReadableStreamDefaultController.close() geschlossen, und eine weitere Funktion wird ausgeführt, die die Daten aus dem Stream zurückliest.

js
let interval;
const stream = new ReadableStream({
  start(controller) {
    interval = setInterval(() => {
      let string = randomChars();

      // Add the string to the stream
      controller.enqueue(string);

      // show it on the screen
      let listItem = document.createElement("li");
      listItem.textContent = string;
      list1.appendChild(listItem);
    }, 1000);

    button.addEventListener("click", () => {
      clearInterval(interval);
      fetchStream();
      controller.close();
    });
  },
  pull(controller) {
    // We don't really need a pull in this example
  },
  cancel() {
    // This is called if the reader cancels,
    // so we should stop generating strings
    clearInterval(interval);
  },
});

Spezifikationen

Specification
Streams
# ref-for-rs-default-controller-enqueue①

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
enqueue

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch