用 json 响应中的错误消息填充我的 throw 对象

问题描述 投票:0回答:1

我想用 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

        })
}
javascript node.js promise
1个回答
0
投票

但是在

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()
})
© www.soinside.com 2019 - 2024. All rights reserved.