ReadableByteStreamController: enqueue() 方法
注意:此功能在 Web Workers 中可用。
ReadableByteStreamController 介面的 enqueue() 方法會將指定的塊入隊到關聯的可讀位元組流中(該塊會被轉移到流的內部佇列中)。
當 byobRequest 為 null 時,才應該使用此方法將資料傳輸到佇列。
語法
js
enqueue(chunk)
引數
chunk-
要入隊的塊。
返回值
無(undefined)。
異常
TypeError-
如果源物件不是
ReadableByteStreamController,或者流因其他原因無法讀取,或者塊不是物件,或者塊的內部 ArrayBuffer 不存在、零長度或已分離,則會丟擲此錯誤。如果流已關閉,也會丟擲此錯誤。
示例
在 使用可讀位元組流 > 建立可讀套接字推送位元組流 中的示例展示瞭如何在沒有待處理的 byobRequest 時使用 enqueue() 將資料複製到流中。如果存在 byobRequest,則應使用它!
下面的程式碼顯示了使用一個“假想”的 socket.readInto() 方法將資料讀入 ArrayBuffer,然後將其入隊(但僅當實際複製了資料時)
js
const buffer = new ArrayBuffer(DEFAULT_CHUNK_SIZE);
bytesRead = socket.readInto(buffer, 0, DEFAULT_CHUNK_SIZE);
if (bytesRead === 0) {
controller.close();
} else {
controller.enqueue(new Uint8Array(buffer, 0, bytesRead));
}
規範
| 規範 |
|---|
| Streams # ref-for-rbs-controller-enqueue① |
瀏覽器相容性
載入中…