ReadableByteStreamController:byobRequest 属性
注意:此功能在Web Workers中可用。
byobRequest
是ReadableByteStreamController
接口的只读属性,它返回当前的 BYOB 请求,如果没有任何挂起的请求,则返回 null
。
底层字节源应检查此属性,如果存在,则使用它将数据写入流(而不是使用ReadableByteStreamController.enqueue()
)。这将导致数据高效地零字节传输到使用者。
值
ReadableStreamBYOBRequest
对象实例,或 null
。
示例
在使用可读字节流 > 创建可读套接字推送字节流中的示例演示了如何使用 byobRequest
传输数据(如果存在),或者使用ReadableByteStreamController.enqueue()
将数据复制到流的内部队列。
相关代码如下所示。如果 byobRequest
存在,则将数据读取到controller.byobRequest.view
中,然后调用ReadableStreamBYOBRequest.respond()
以指示准备传输的数据量。
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().
}
规范
规范 |
---|
Streams 标准 # ref-for-rbs-controller-byob-request② |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。