ReadableByteStreamController:byobRequest 属性

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

byobRequestReadableByteStreamController接口的只读属性,它返回当前的 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 的浏览器中加载。

另请参阅