// 常见的promise使用例子
var promise1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('foo');
}, 300);
});
promise1
.then(data => {
// 处理正常业务逻辑
var a = null
a.b = 3
})
.catch(error => {
// 处理异常
})
上面是常见的promise使用例子,当promise1进入到reject状态时,catch会捕捉到,并进行异常处理;
但业务逻辑产生不可预知的错误时,也会被catch捕捉,如果不被特殊判断的话,就会按照reject状态一同被处理。
由于项目中使用的是axios进行数据请求,因此写了上千个axios的Promise实例。如果每一个catch都要判断error类型并单独处理的话,感觉特别浪费代码且不方便。有什么更好地解决办法吗?
你可以把同类型的错误处理写成一个重用的公共的函数或者方法,然后在每个请求的catch中调用这个函数。