Response
更新時間 2023-12-05 10:58:15
最近更新時間: 2023-12-05 10:58:15
分享文章
本文介紹函數運行時中Response的定義與用法。
您可以使用new Response()構造函數來創建一個Response對象,但通常更可能遇到的情況是,其他的API操作返回了一個Response對象。例如一個FetchEvent.respondWith,或者一個簡單的fetch()。
詳細定義請參見MDN官方文檔Response。
構造函數
let response = new Response(body, init)
- 參數
- body
- 可選,定義響應正文的對象。可以是null或以下任何一種類型:
- BufferSource
- FormData(即將支持)
- ReadableStream
- URLSearchParams
- USVString
- 可選,定義響應正文的對象。可以是null或以下任何一種類型:
- init
- 可選,包含要應用于Response的自定義設置。
- status
int- 響應的狀態碼,例如200。
- statusText
string- 與狀態代碼關聯的狀態消息,例如OK。
- headers
Headers|ByteString- Headers對象或要添加到響應頭的ByteString鍵/值對。
- status
- 可選,包含要應用于Response的自定義設置。
- body
屬性
- body
ReadableStream- 讀取響應正文的只讀流。
- bodyUsed
boolean- 表示響應是否讀取過正文。
- headers
Headers- 響應的頭信息。
- ok
boolean- 表示響應是否成功(HTTP狀態碼的范圍在200-299)。
- redirected
boolean- 表示響應是否來自一個重定向,如果是的話,它的URL列表將會有多個條目。
- status
int- 響應的狀態碼 (例如200表示成功)。
- statusText
string- 與響應狀態碼一致的狀態信息(例如,OK對應200)。
- url
string- 響應的URL,該值是任何重定向后獲得的最終URL。
- webSocket
- 暫不支持。
方法
實例方法
- clone()
Response- 創建Response對象的副本。
- redirect()
Response- 使用其他URL創建新的響應。
其他實例方法
Response實現Body的接口,所以以下方法同樣可用:
- arrayBuffer()
Promise<ArrayBuffer>- 讀取Response對象并且將它設置為已讀(因為Response對象被設置為了stream的方式,所以它們只能被讀取一次),并返回一個被解析為ArrayBuffer格式的Promise對象。
- formData()
Promise<FormData>- 讀取Response對象并且將它設置為已讀(因為Response對象被設置為了stream的方式,所以它們只能被讀取一次),并返回一個被解析為FormData格式的Promise對象(即將支持)。
- json()
Promise<JSON>- 讀取Response對象并且將它設置為已讀(因為Response對象被設置為了stream的方式,所以它們只能被讀取一次),并返回一個被解析為 JSON 格式的Promise對象。
- text()
Promise<USVString>- 讀取Response對象并且將它設置為已讀(因為Response對象被設置為了stream的方式,所以它們只能被讀取一次),并返回一個被解析為 USVString 格式的Promise對象。