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① |
浏览器兼容性
加载中…