ReadableStreamBYOBRequest: respond()-Methode

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 respond()-Methode des ReadableStreamBYOBRequest-Interfaces wird verwendet, um dem zugehörigen lesbaren Bytestrom zu signalisieren, dass die angegebene Anzahl von Bytes in den ReadableStreamBYOBRequest.view geschrieben wurden.

Nachdem diese Methode aufgerufen wurde, wird der view übertragen und kann nicht mehr geändert werden.

Syntax

js
respond(bytesWritten)

Parameter

bytesWritten

Die Anzahl der Bytes, die in ReadableStreamBYOBRequest.view geschrieben wurden.

Rückgabewert

Keiner (undefined).

Ausnahmen

TypeError

Die Anfrage hat keinen zugeordneten ReadableByteStreamController oder der View-Puffer ist nicht getrennt/kann nicht übertragen werden.

Beispiele

Der untenstehende Code ist aus den Live-Beispielen in Using readable byte stream entnommen.

Die Methode wird von einer zugrunde liegenden Bytequelle aufgerufen, als Teil des Prozesses der Ausführung eines Zero-Copy-Transfers von Daten, um eine ausstehende Leseanforderung eines Verbrauchers zu erfüllen. Die zugrunde liegende Quelle schreibt zuerst Daten in den ReadableStreamBYOBRequest.view und ruft dann diese respond()-Methode auf, um anzuzeigen, wie viel Daten in den Puffer kopiert wurden, und um das Übertragen der Daten an den Leser zu veranlassen.

Der folgende Code zeigt diesen Fall mit einer hypothetischen readInto()-Methode, um Daten in den View zu kopieren:

js
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
controller.byobRequest.respond(bytesRead);

Nach dem Vorgang ist der byobRequest.view getrennt und die Anfrage sollte verworfen werden.

Spezifikationen

Specification
Streams Standard
# ref-for-rs-byob-request-respond①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch