以前在ajax中可以这样处理request(param){$.ajax{type:param.type,url:param.url,success(res){if(res.status===0){typeofparam.success==='function'&¶m.success(res.data)}elseif(res.status===1){login()}elseif(res.status===2){typeofparam.success==='function'&¶m.success(res.data)}},error(err){typeofparam.error==='function'&¶m.error(res.err)}}}像上面这种情况,比如状态为0表示成功,然后进行成功后的处理,这在axios中怎么处理呢?
2 回答

德玛西亚99
TA贡献1770条经验 获得超3个赞
可以添加一个响应拦截器constinstance=axios.create()//添加一个响应拦截器instance.interceptors.response.use(response=>{window.vm.$loading.hide()//在这里对返回的数据进行处理letstatus=response.statusletdata=response.dataif(status===200){if(data.code!=='0000'){window.vm.$alert({msg:data.desc,type:'danger'})}returnPromise.resolve(data)}else{returnPromise.reject(response)}},error=>{//responseerrorconsole.log(error)window.vm.$loading.hide()window.vm.$alert({msg:'请求异常,请联系管理员!',type:'danger',autoClose:false})returnPromise.reject(error)})exportdefaultinstance

慕勒3428872
TA贡献1848条经验 获得超6个赞
asyncfunctionrequest(param){let{url,method,success,error}=paramtry{let{data,status,error}=awaitaxios({method,url})if(status===0){typeofsuccess==='function'&&success(data)}elseif(status===1){login()}elseif(status===2){typeofsuccess==='function'&&success(data)}}catch(err){typeoferror==='function'&&error(err)}}
添加回答
举报
0/150
提交
取消