Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. WritableStreamDefaultController
  4. signal

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

View in EnglishAlways switch to English

WritableStreamDefaultController: signal-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since März 2023.

Hinweis: Diese Funktion ist inWeb Workers verfügbar.

Die schreibgeschütztesignal-Eigenschaft derWritableStreamDefaultController-Schnittstelle gibt das mit dem Controller verknüpfteAbortSignal zurück.

Wert

EinAbortSignal-Objekt.

Beispiele

Abbrechen eines langen Schreibvorgangs

In diesem Beispiel simulieren wir einen langsamen Vorgang mit einem lokalen Sink: Wir tun nichts, wenn einige Daten geschrieben werden, außer eine Sekunde zu warten. Dies gibt uns genügend Zeit, diewriter.abort()-Methode aufzurufen und das Versprechen sofort abzulehnen.

js
const writingStream = new WritableStream({  // Define the slow local sink to simulate a long operation  write(chunk, controller) {    return new Promise((resolve, reject) => {      controller.signal.addEventListener("abort", () =>        reject(controller.signal.reason),      );      // Do nothing but wait with the data: it is a local sink      setTimeout(resolve, 1000); // Timeout to simulate a slow operation    });  },});// Perform the writeconst writer = writingStream.getWriter();writer.write("Lorem ipsum test data");// Abort the write manuallyawait writer.abort("Manual abort!");

Übertragen desAbortSignal auf die darunterliegende Ebene

In diesem Beispiel verwenden wir dieFetch API, um die Nachricht tatsächlich an einen Server zu senden. Die Fetch API unterstützt ebenfallsAbortSignal: Es ist möglich, dasselbe Objekt sowohl für diefetch-Methode als auch denWritableStreamDefaultController zu verwenden.

js
const endpoint = "https://www.example.com/api"; // Fake URL for example purposeconst writingStream = new WritableStream({  async write(chunk, controller) {    // Write to the server using the Fetch API    const response = await fetch(endpoint, {      signal: controller.signal, // We use the same object for both fetch and controller      method: "POST",      body: chunk,    });    await response.text();  },});// Perform the writeconst writer = writingStream.getWriter();writer.write("Lorem ipsum test data");// Abort the write manuallyawait writer.abort("Manual abort!");

Spezifikationen

Specification
Streams
# ref-for-ws-default-controller-signal①

Browser-Kompatibilität

Help improve MDN

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

[8]ページ先頭

©2009-2026 Movatter.jp