用axios封装http请求时,怎样做判断自定义状态值成功后对应的操作?

以前在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中怎么处理呢?
弑天下
浏览 1732回答 2
2回答

德玛西亚99

可以添加一个响应拦截器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

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)}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript