老师在已经封装好的ajax里面传参的时候已经设置了http状态码异常的reject()了?
老师在已经封装好的ajax里面传参的时候已经设置了http状态码异常的reject()了?就是下面的代码
const ajax = (url, options) => {
let xhr;
const promise = new Promise((resolve, reject) => {
xhr = new Ajax(url, {
...options,
...{
// 这里有判断http状态码,成功的话才会resolve
success(response) {
resolve(response);
},
httpCodeError(status) {
reject({
type: ERROR_HTTP_CODE,
text: `${ERROR_HTTP_CODE_TEXT}:${status}`
});
},
error() {
reject({
type: ERROR_NETWORK,
text: ERROR_NETWORK_TEXT
});
},
abort() {
reject({
type: ERROR_ABORT,
text: ERROR_ABORT_TEXT
});
},
timeout() {
reject({
type: ERROR_TIMEOUT,
text: ERROR_TIMEOUT_TEXT
});
}
}
}).getXHR();
});
promise.xhr = xhr;
promise.ERROR_HTTP_CODE = ERROR_HTTP_CODE;
promise.ERROR_NETWORK = ERROR_NETWORK;
promise.ERROR_TIMEOUT = ERROR_TIMEOUT;
promise.ERROR_ABORT = ERROR_ABORT;
return promise;
};为什么用的时候还要再判断一遍状态码?
const getData = (url, options) => {
return getJSON(url, {
timeoutTime: TIMEOUT,
...options
})
.then(response => {
// {
// code: 200,
// data: []
// }
if (response.code !== SUCC_CODE)
throw new Error(`出错了:${response.code}`);
return response.data;
})
.catch(err => {
console.log(err);
});
};15
收起
正在回答 回答被采纳积分+1
1回答





恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星