ReadableByteStreamController: byobRequest-Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Die schreibgeschützte Eigenschaft byobRequest der Schnittstelle ReadableByteStreamController gibt die aktuelle BYOB-Anfrage zurück oder null, wenn es keine ausstehenden Anfragen gibt.

Eine zugrunde liegende Byte-Quelle sollte diese Eigenschaft überprüfen und verwenden, um Daten in den Stream zu schreiben, falls sie existiert (anstatt ReadableByteStreamController.enqueue() zu nutzen). Dies führt zu einem effizienten Null-Byte-Transfer der Daten zum Verbraucher.

Wert

Ein ReadableStreamBYOBRequest-Objektinstanz oder null.

Beispiele

Das Beispiel in Verwendung von lesbaren Bytestreams > Erstellen eines lesbaren Socket-Push-Bytestreams zeigt, wie Sie eine byobRequest verwenden, um Daten zu übertragen (falls sie existiert), oder anderweitig die Daten in die internen Warteschlangen des Streams mithilfe von ReadableByteStreamController.enqueue() zu kopieren.

Der relevante Code wird unten wiedergegeben. Falls eine byobRequest existiert, werden die Daten in controller.byobRequest.view gelesen und dann wird ReadableStreamBYOBRequest.respond() aufgerufen, um die Menge der Daten zu signalisieren, die für den Transfer bereit sind.

js
if (controller.byobRequest) {
  const v = controller.byobRequest.view;
  bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
  if (bytesRead === 0) {
    controller.close();
  }
  controller.byobRequest.respond(bytesRead);
} else {
  // Write to data using enqueue().
}

Spezifikationen

Specification
Streams Standard
# ref-for-rbs-controller-byob-request②

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch