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②

瀏覽器相容性

另見