Limited availability
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die respondWithNewView()
Methode des ReadableStreamBYOBRequest
-Interfaces gibt eine neue Ansicht an, auf die der Verbraucher des zugehörigen lesbaren Bytestreams schreiben soll, anstelle der ReadableStreamBYOBRequest.view
.
Die neue Ansicht muss ein TypedArray
oder ein DataView
sein, das eine Ansicht auf denselben Speicherbereich wie ReadableStreamBYOBRequest.view
bietet. Nachdem diese Methode aufgerufen wurde, wird die in die Methode übergebene Ansicht übertragen und kann nicht mehr verändert werden.
Die Methode ist für Anwendungsfälle gedacht, in denen eine zugrunde liegende Bytequelle eine byobRequest.view
intern übertragen muss, bevor sie ihre Antwort beendet. Zum Beispiel könnte die Quelle die BYOB-Ansicht an einen separaten Worker-Thread übertragen und warten, bis der Worker sie zurücküberträgt, sobald sie gefüllt ist.
view
Ein TypedArray
oder ein DataView
, auf den der Verbraucher des zugehörigen lesbaren Bytestreams schreiben soll, anstelle von ReadableStreamBYOBRequest.view
.
Dies muss eine Ansicht auf denselben Speicherbereich wie ReadableStreamBYOBRequest.view
sein und den gleichen oder weniger Speicher belegen. Insbesondere muss es entweder der Puffer der Ansicht oder eine übertragene Version davon sein, denselben byteOffset
haben und eine byteLength
(Anzahl der geschriebenen Bytes), die kleiner oder gleich derjenigen der Ansicht ist.
Keiner (undefined
).
TypeError
Wird ausgelöst, wenn das Quellobjekt nicht ReadableStreamBYOBRequest
ist, oder wenn kein zugehöriger Controller existiert, oder wenn der zugehörige interne Array-Puffer nicht existent oder getrennt ist. Es kann auch ausgelöst werden, wenn die view
eine Länge von null hat, während ein aktiver Leser vorhanden ist, oder eine nicht-null Länge hat, wenn es auf einem geschlossenen Stream aufgerufen wird.
RangeError
Wird ausgelöst, wenn die neue view
nicht mit dem Speicherbereich von ReadableStreamBYOBRequest.view
übereinstimmt. Zum Beispiel ist es nicht derselbe Puffer (oder eine übertragene Version davon), hat einen anderen byteOffset
oder ist gröÃer als der für die zugrundeliegende Ansicht verfügbare Speicher.
Die zu übertragende Ansicht muss vom gleichen Typ wie ReadableStreamBYOBRequest.view
sein, denselben zugrunde liegenden Puffer und Byte-Offset haben und die gleiche oder eine kleinere byteLength
aufweisen.
Zum Beispiel könnten wir die Ansicht definieren und wie folgt antworten:
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
byobRequest.respondWithNewView(
byobRequest.view.subarray(v.byteOffset, bytesRead),
);
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4