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② |
浏览器兼容性
加载中…