uniapp—— request 封装

1.创建request.js 

uniapi(function_name, obj) {
    return new Promise((resole, reject)=>{
        uni[function_name]({
            ...obj,
            success: res => resole(res),
            fail:res=>reject(res)
        })
    })
},
request(params){
    return new Promise((resolve,reject)=>{
        this.unirequest(params).then((res)=>{
            resolve(res);
        })
    })
},
netWorkStatus(){
    return new Promise((resolve,reject)=>{
                        
                this.uniapi("getNetworkType").then(res=>{
            if(res.networkType=="none"){
                uni.showToast({
                    title: '当前无网络,请稍候再试',
                    icon:'none'
                });
                reject('当前无网络,请稍候再试')
            }else{
                resolve()
            }
        })
    })
},
unirequest(params){
    return new Promise((resolve,reject)=>{
        this.netWorkStatus().then(()=>{
            this.uniapi("request",{
                ...params,
                url:'域名'+params.url,
                method:params.method?params.method:'POST',
                header:{
                    token:uni.getStorageSync('token'), //token值
                    'device':'WEIXIN'
                }
            }).then(res=>{
                resolve(res.data);
            });
        })
    });
                
}    

2.main.js全局引用

import Request from 'request.js的路径'
Vue.prototype.base=new Request();

3.页面调用

getArry:function(){
    this.request({
        url: '接口名',
        method: 'POST',
                data:{},
    }).then(res => {
        //res=接口返回的参数
    })
},    

 

posted @ 2023-07-26 16:15  smile_Lu  阅读(795)  评论(0)    收藏  举报