文档中心 Edge Application 开发者指南 ReadableStreamDefaultReader

ReadableStreamDefaultReader

更新时间:2024-08-14 19:50:29

ReadableStreamDefaultReader

ReadableStreamDefaultReader 接口用于可读流操作,基于 Web APIs 标准 ReadableStreamDefaultReader 设计。

注意:

不支持直接构造 ReadableStreamDefaultReader 对象,需使用 ReadableStream.getReader 方法获取:

const { readable, writable } = new TransformStream();
const reader = readable.getReader();

属性

closed

  • 类型: Promise<void> (只读)
  • 描述: 一个 Promise 对象,指示 reader 是否已关闭。 当可读流关闭时,Promise 状态为 fulfilled;如果流中出现错误,则 Promise 状态为 rejected。

方法

read()

reader.read(): Promise<{ value: any, done: boolean }>

返回值: 返回一个 Promise,其中包含通过 reader 队列传递的下一个可用数据块。

描述: 从流中读取数据。

注意: 不允许在前一个流读取操作结束前,调用 read 方法发起下一个流读取操作。

reader.read 方法返回一个 Promise,该 Promise 解析为 { value: theChunk, done: boolean } 格式的对象,其中:

  • 如果有一个数据块可用,则 Promise 将以 done: false 完成。
  • 如果流已关闭,则 Promise 将以 value: undefineddone: true 完成。
  • 如果流出错,则 Promise 将被拒绝并包含相关错误信息。

cancel()

reader.cancel(reason?: string): Promise<void>

参数:

  • reason (可选): 一个描述取消原因的可读字符串。

描述: 取消流。 reason 将传递到底层源的取消算法 - 如果此可读流是 TransformStream 的一侧,则其取消算法会导致转换的可写侧因 reason 而出错。

警告: 任何尚未读取的数据都将丢失。

releaseLock()

reader.releaseLock(): void;

描述: 释放可读流上的锁。

注意: 如果 reader 具有待处理的读取操作,则无法释放锁。 如果发生这种情况,则会抛出 TypeError,并且 reader 仍保持锁定状态。

相关参考

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!