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
# ref-for-rbs-controller-byob-request②

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
byobRequest

Legend

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

Full support
Full support
No support
No support

Siehe auch