关于Fetch API可读流的疑问:先fetch是否需先下载完整资源?
关于fetch与ReadableStream的逐块读取问题
不会先完整下载整张图片,你可以在获取fetch响应后立刻附加阅读器,逐块接收正在传输的数据。
fetch API在接收到服务器返回的响应头后,就会返回包含ReadableStream的Response对象,此时数据还在持续传输中,并未完成完整下载。你可以通过Response.body获取这个可读流,再创建阅读器(如ReadableStreamDefaultReader),调用read()方法逐块读取正在接收的数据——这正是Streams API的核心设计目的:
作为JavaScript开发者,以编程方式逐块读取和处理通过网络接收的数据流是非常有用的!
当你成功连接阅读器后,就可以通过ReadableStreamDefaultReader.read()从流中读取数据块,这个过程和网络传输同步,不需要等待整个资源下载完成:
现在你已连接了阅读器,就可以使用ReadableStreamDefaultReader.read()从流中读取数据块
内容的提问来源于stack exchange,提问作者Neighbor
相关产品推荐
相关产品推荐

