ReadableStreamBYOBRequest: respond() 方法

注意:此功能在Web Workers中可用。

respond() 方法是 ReadableStreamBYOBRequest 接口的方法,用于向关联的 可读字节流 信号,指定数量的字节已写入 ReadableStreamBYOBRequest.view

调用此方法后,view 将被传输且不再可修改。

语法

js
respond(bytesWritten)

参数

返回值

无 (undefined).

异常

TypeError

请求没有关联的 ReadableByteStreamController 或视图缓冲区未分离/无法传输。

示例

以下代码取自 使用可读字节流 中的实时示例。

该方法由底层字节源调用,作为将数据进行零拷贝传输以满足消费者挂起的读取请求的一部分。底层源首先将数据写入 ReadableStreamBYOBRequest.view,然后调用此 respond() 方法指示复制到缓冲区中的数据量,并导致数据传输到读取器。

以下代码使用假设的 readInto() 方法将数据复制到视图中,展示了这种情况。

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

操作完成后,byobRequest.view 将被分离,并且请求应被丢弃。

规范

规范
流标准
# ref-for-rs-byob-request-respond①

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅