我想用 API 的 JSON 响应中存在的错误消息填充我的错误对象
{'status': response.status, 'msg': ''}
(如果有),否则抛出错误对象而不包含任何消息。
但是在评估 throw {'status': response.status, 'msg': ''}
承诺之前以及每次我收到空消息时,json_response
语句都会被命中。如何在错误对象中填充消息属性?
return await fetch(url.toString(), {
method: 'post',
headers: get_headers(url, request_body),
body: JSON.stringify(request_body)
})
.then((response) => {
console.log(`API Status: ${response.status} API ${url.toString()}`)
if (!response.ok) {
// response.json()
// .then(json_response => {
// console.log(json_response)
// logger.error(json_response)
// throw {'status': response.status, 'msg': json_response?.errorMessage?.message}
// })
// .catch((e)=>{
// throw e
// })
throw {'status': response.status, 'msg': ''}
}
return response.json()
})
.then((json_response) => {
return json_response
})
}
但是在
承诺被评估之前以及每次我收到空消息时,throw {'status': response.status, 'msg': ''}
语句都会被命中。json_response
你不能同时拥有两者!此外,您还需要
return
带有错误响应的承诺:
.then((response) => {
console.log(`API Status: ${response.status} API ${url.toString()}`)
if (!response.ok) {
return response.json()
// ^^^^^^
.then(json_response => {
console.log(json_response)
logger.error(json_response)
throw {'status': response.status, 'msg': json_response?.errorMessage?.message}
});
}
return response.json()
})