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② |
瀏覽器相容性
載入中…