ReadableStreamBYOBRequest: respond() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

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

ReadableStreamBYOBRequest 介面的 respond() 方法用於向關聯的 可讀位元組流 發出訊號,表明指定數量的位元組已寫入 ReadableStreamBYOBRequest.view

呼叫此方法後,view 將被轉移且不再可修改。

語法

js
respond(bytesWritten)

引數

bytesWritten

寫入 ReadableStreamBYOBRequest.view 的位元組數。

返回值

無(undefined)。

異常

TypeError

請求沒有關聯的 ReadableByteStreamController,或者 view 緩衝區未分離/無法傳入。

示例

下面的程式碼摘自 使用可讀位元組流 中的即時示例。

底層位元組源呼叫此方法,作為執行零複製資料傳輸的一部分,以滿足消費者掛起的讀取請求。底層源首先將資料寫入 ReadableStreamBYOBRequest.view,然後呼叫此 respond() 方法來指示已將多少資料複製到緩衝區中,並促使資料傳輸給讀取器。

下面的程式碼使用一個假設的 readInto() 方法將資料複製到 view 中,展示了這種情況。

js
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
controller.byobRequest.respond(bytesRead);

操作完成後,byobRequest.view 將被分離,並且請求應該被丟棄。

規範

規範
Streams
# ref-for-rs-byob-request-respond①

瀏覽器相容性

另見