基于uniapp异步封装接口请求简介

uni.request({
     
    url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
    data: {
     
        text: 'uni.request'
    },
    header: {
     
        'custom-header': 'hello' //自定义请求头信息
    },
    success: (res) => {
     
        console.log(res.data);
        this.text = 'request success';
    }
});

这是uniapp官网发起请求的方法,可见其为异步请求;

接下来,我们来二次封装咱们的项目逻辑,如果你对Promise不大了解,建议先去了解了解!

request.globalRequest = (url, method, data) => {
     
	    const token = uni.getStorageSync('token');
		headers['Content-Type'] = 'application/x-www-form-urlencoded'
		if (token != ""){
     
			headers['Authorization'] = 'Bearer' + token
		}//请求携带token
	
		    return uni.request({
     
		        url: url,
		        method,
		        data: data,
		        dataType: 'json',
				sslVerify:false,
		        header: headers
		    }).then(res => {
     
				// return res[1]
		        if (res[1].data.err == 0) {
     //后端业务逻辑,err=0成功,err=1失败,根据自己业务逻辑改变。
		            return res[1]
		        } else {
     
		            throw res[1].data //抛出异常
		        }
		    }).catch(parmas => {
     
		      switch (parmas.code) {
     
		        case 401:
		        // 登录失败,未授权
		          uni.clearStorageSync()//同步清理本地数据缓存。
		          break
		        default:
		          uni.showToast({
       //弹出异常提醒
		            title: parmas.msg,
		            icon: 'none'
		          })
		          return Promise.reject()
		          break
		      }
		  })
 } 

export default request

你可能感兴趣的:(基于uniapp异步封装接口请求简介)