Response 和 Request 类似,表示的是一次请求返回的响应数据。

构造函数

你可以使用Response构造函数来创建一个response实例,但通常情况下,是其他 API 操作后会返回这样一个实例,不需要我们手动构造。

  1. // 手动构造——可以但没必要
  2. const response = new Response()
  3. // fetch 函数返回的 Response 的实例
  4. const request = new Request()
  5. fetch(request)
  6. .then((response) => {
  7. console.log(response) // 这个就是 response
  8. })

实例的属性

下面的response代表Response构造函数返回的实例

response.body

一个 ReadableStream 类型的 body 内容

response.bodyUsed

包含了一个布尔值来表示该 Response 是否读取过 Body

response.headers

包含此 Response 所关联的 Headers 对象

response.ok

包含了一个布尔值,标示该 Response 成功(HTTP 状态码的范围在 200-299)

response.redirected

表示该 Response 是否来自一个重定向,如果是的话,它的 URL 列表将会有多个条目。

response.status

Response 的状态码。

response.statusText

包含了与该 Response 状态码一致的状态信息。

response.type

Response 的类型(例如,basic、cors)

response.url

Response 的 URL

实例的方法

response.arrayBuffer()

读取 Response 对象并且将它设置为已读,并返回一个被解析为 ArrayBuffer 格式的 Promise 对象。

因为 Responses 对象被设置为了 stream 的方式,所以它们只能被读取一次

response.blob()

读取 Response 对象并且将它设置为已读,返回一个被解析为 Blob 格式的 Promise 对象

因为 Responses 对象被设置为了 stream 的方式,所以它们只能被读取一次

response.formData()

读取 Response 对象并且将它设置为已读,返回一个被解析为 FormData 格式的 Promise 对象

因为 Responses 对象被设置为了 stream 的方式,所以它们只能被读取一次

response.json()

读取 Response 对象并且将它设置为已读,并返回一个被解析为 JSON 格式的 Promise 对象。

因为 Responses 对象被设置为了 stream 的方式,所以它们只能被读取一次

response.text()

读取 Response 对象并且将它设置为已读,并返回一个被解析为 USVString 格式的 Promise 对象。

因为 Responses 对象被设置为了 stream 的方式,所以它们只能被读取一次

response.clone()

创建一个 Response 对象的克隆。

response.redirect()

用另一个 URL 创建一个新的 Response

response.error()

返回一个绑定了网络错误的新的 Response 对象

参考资料

《Response——MDN》