老师在已经封装好的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 星