原文: https://blog.imlete.cn/article/async-await-error-handling.html
废话
在实际开发中,用到了一些异步函数或是请求。你可能会写.then()
和.catch()
来处理异步的成功与失败
那么如果这个.then()
里又有一个请求,那么时不时又得写.then()
和.catch()
,那么很有可能.catch()
里也有呢?
这里就不多说什么回调地狱的问题了
你可能就会用async
和await
来处理异步请求,但这也就会随着产生一个问题,那就是await
它无法捕获异步请求的错误啊
这时你又想到,那我包一层try...catch
不就好了吗?
但是这仅仅只能处理当前这个方法的错误,如果这个方法里又多个请求或者说是其他同步代码产生的问题,错误也只能定位到这个方法。
try...catch
对代码的可读性不是很友好(个人觉得)
如果你觉得上面所说的,你觉得很 ok,就是要用上面说的
try...catch
还是.then()
和.catch()
,就随便你
萝卜青菜,各有所爱(你想用啥就用啥)
正文
现在有如下代码:
// 成功
function Success() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Run Success");
}, 500);
});
}
// 失败
function UnSuccess() {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error("Run Error"))