1. 面向开发者的 Web 技术
  2. Web API
  3. ReadableStreamDefaultController
  4. ReadableStreamDefaultController.enqueue()

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

ReadableStreamDefaultController.enqueue()

基线 广泛可用

自 2020年1月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

ReadableStreamDefaultController 接口的 enqueue() 方法将给定数据块送入到关联的流中。

语法

js
enqueue(chunk)

参数

chunk

要送入的数据块。

返回值

无 (undefined)。

异常

TypeError

如果源对象不是 ReadableStreamDefaultController 则抛出该异常。

示例

在下面的简单示例中,使用构造函数创建一个自定义的 ReadableStream (有关完整代码,参见我们的简单随机流展示)。start() 函数每秒生成一个随机字符串并且将他们送入流中。cancel() 函数用于在 ReadableStream.cancel() 被调用时停止随机字符串的生成。

当按下按钮时,将停止生成,使用 ReadableStreamDefaultController.close() 关闭流,并运行另一个函数以读取流中的数据。

js
const stream = new ReadableStream({
 start(controller) {
 interval = setInterval(() => {
 let string = randomChars();
 // 将随机字符串添加到流
 controller.enqueue(string);
 // 在屏幕上展示
 let listItem = document.createElement("li");
 listItem.textContent = string;
 list1.appendChild(listItem);
 }, 1000);
 button.addEventListener("click", function () {
 clearInterval(interval);
 fetchStream();
 controller.close();
 });
 },
 pull(controller) {
 // 在这个例子中不使用 pull
 },
 cancel() {
 // 如果取消了 reader,则会调用该函数,
 // 所以我们应该在这里停止生成字符串
 clearInterval(interval);
 },
});

规范

规范
Streams
# ref-for-rs-default-controller-enqueue1

浏览器兼容性

参见

帮助改进 MDN

了解如何参与贡献

此页面最后更新于 ,由 MDN 贡献者更新。

AltStyle によって変換されたページ (->オリジナル) /