2.6 Response.body 属性

Response.body属性是 Response 对象暴露出的底层接口,返回一个 ReadableStream 对象,供用户操作。

它可以用来分块读取内容,应用之一就是显示下载的进度。

  1. const response = await fetch('flower.jpg');
  2. const reader = response.body.getReader();
  3. while(true) {
  4. const {done, value} = await reader.read();
  5. if (done) {
  6. break;
  7. }
  8. console.log(`Received ${value.length} bytes`)
  9. }

上面示例中,response.body.getReader()方法返回一个遍历器。这个遍历器的read()方法每次返回一个对象,表示本次读取的内容块。

这个对象的done属性是一个布尔值,用来判断有没有读完;value属性是一个 arrayBuffer 数组,表示内容块的内容,而value.length属性是当前块的大小。