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.
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