ReadableStreamDefaultReader - 表示一个默认的流读取器
ReadableStreamDefaultReader
是 Streams API 的接口,表示一个默认的流读取器,可用于读取从网络提供的流数据(例如,获取请求)。
构造函数
ReadableStreamDefaultReader()
创建并返回一个 ReadableStreamDefaultReader
对象实例。
属性
ReadableStreamDefaultReader.closed
只读
允许您编写响应流式传输过程结束的代码。返回一个 Promise,该 Promise 将在流关闭或释放阅读器的锁时实现,或者在流错误时拒绝。
方法
ReadableStreamDefaultReader.cancel()
取消流,表示消费者对流失去兴趣。reason 参数将被提供给基础数据源,该数据源可以使用它,也可以不使用它。
ReadableStreamDefaultReader.read()
返回一个 Promise,提供对流内部队列中下一个块的访问。
ReadableStreamDefaultReader.releaseLock()
释放阅读器对流的锁定。
实例
在下面的实例中,将创建一个人工的 Response
,以将从其他资源获取的 HTML 片段流式传输到浏览器。
它演示了 ReadableStream
与 Uint8Array
结合的用法。
fetch("https://www.example.org/").then((response) => {
const reader = response.body.getReader();
const stream = new ReadableStream({
start(controller) {
// 以下函数处理每个数据块
function push() {
// “done” 是布尔值,value 是 “Uint8Array”
return reader.read().then(({ done, value }) => {
// 没有更多数据可读取了吗?
if (done) {
// 告诉浏览器我们已经完成发送数据
controller.close();
return;
}
// 获取数据并通过控制器将其发送到浏览器
controller.enqueue(value);
push();
});
};
push();
}
});
return new Response(stream, { headers: { "Content-Type": "text/html" } });
});
规范
规范 | 状态 | 备注 |
---|---|---|
Streams ReadableStreamDefaultReader 的定义 |
现行的标准 | 初始定义 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 52 | 未知 | 65 57 | 未知 | 39 | 未知 |
ReadableStreamDefaultReader() 构造函数 | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
cancel | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
closed | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
read | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
releaseLock | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 52 | 52 | 未知 | 65 57 | 未知 | 41 | 未知 |
ReadableStreamDefaultReader() 构造函数 | 未知 | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
cancel | 未知 | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
closed | 未知 | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
read | 未知 | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |
releaseLock | 未知 | 未知 | 未知 | 65 57 | 未知 | 未知 | 未知 |