我有以下的 promise 链:
return fetch(request)
.then(checkStatus)
.then(response => response.json())
.then(json => ({ response: json }))
.catch(error => ({ error }))
在这里,checkstatus()
会检查请求是否成功,如果失败就返回一个错误。这个错误会被捕获并返回。但问题是我想把response.statusText
和response.json()
的结果都添加到错误信息中。但是,当我解析它时,我会失去原始响应,因为我必须返回response.json()
,因为它是一个 promise。
目前,checkstatus的功能如下:
const checkStatus = response => {
if (response.ok) return response
const error = new Error('Response is not ok')
// this works because the response hasn't been parsed yet
if (response.statusText) error.message = response.statusText
// an error response from our api will include errors, but these are
// not available here since response.json() hasn't been called
if (response.errors) error.errors = response.errors
throw error
}
export default checkStatus
如何使用 error.message = response.statusText
和 error.errors = response.json().errors
返回错误信息?
注:本翻译保留了HTML标签,如需删除请告知。
response.json()
,所以我丢失了链中的原始响应" 正是规范问题的关键。 - Bergi