而不是使用传统的try/catch在发送请求时处理错误,如下所示
let body;
try {
const response = await sendRequest(
"POST",
"/api/AccountApi/RefundGetStatus",
JSON.stringify(refundParams),
undefined,
headers
);
body = response.body;
} catch (error) {
log("error", "An error occurred sending a request", { error });
throw createError("An error has occurred", DefaultErrors.API_ERROR);
}我在想,是否有可能达到同样的结果,重写错误处理,如下所示。
const response = await sendRequest(
"POST",
"/api/AccountApi/RefundGetStatus",
JSON.stringify(refundParams),
undefined,
headers
).catch((err: any) => {
log("error", "An error occurred sending a request", { err });
throw createError("An error has occurred", DefaultErrors.API_ERROR);
});上面的代码块是否能够处理未定义的错误和可能的JSON.parse错误?
发布于 2019-07-26 11:40:19
这两种方法都可以使用
try {
await sendRequest()
} catch (err) {
// do something
}或
sendRequest().catch(err => { // do something})来捕捉错误。
下面是一个简单的示例,您可以将其粘贴到typescript playgound中进行尝试。
const sendRequest = (str: string) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('get response');
reject('error message');
}, 2000)
})
}
const test1 = async ()=> {
try{
await sendRequest('data');
} catch (err) {
// will print 'err===> error message'
console.log('err===>', err)
}
}
const test2 = async ()=> {
sendRequest('data').catch(err => {
// will print 'err===> error message'
console.log('err=====>', err)
})
}
test1();
test2();test1()和test2()都会捕获错误。
https://stackoverflow.com/questions/57212334
复制相似问题