最近改一个bug,图片添加后,显示添加成功,但是没有显示,且其余的一些功能受到了影响,排查后发现,图片路径有问题,需要在请求不到时,不影响后续代码执行
目的:请求报错代码继续执行,且在浏览器抛出错误
const getphoto = function (url) { return $.ajax({ type : "GET", url : url, beforeSend : function (xmlHttp) { xmlHttp.setRequestHeader("If-Modified-Since", "0"); xmlHttp.setRequestHeader("Cache-Control", "no-cache"); } }); };
后续代码在请求的时候,直接调用getphoto方法,promise失败后,就不会继续执行了
可改为
requestImg() {
const throwErrLog = (errMsg) => {
throw new Error(errMsg);
};
return new Promise((resolve) => {
this.getphoto.then(img=> {
resolve({type : "Success", data : img});
}).catch(err => {
resolve({type : "Error", data : err});
throwErrLog(err);
});
});
}
后面请求方法的时候,直接判断返回值的type是否为success
throw封装一层,是因为抛出异常后,则跳出当前作用域,后续代码不再执行,所以封装一个方法,改变作用域