uniapp封装request方法及调用

作者: gavin 分类: uniapp 发布时间: 2022-02-14 13:29
创建common/js/request.js
export default {
    doRequest(method, url, data) {
        // 如果data为空
        if (!data) var data = []
        var arr = []
        arr.push(data)
      //我司项目需要验证state和openid,我登录后存在本地
        var state = uni.getStorageSync('state');
        var openid = uni.getStorageSync('openid');
        arr[0].state = state;
        arr[0].openid = openid;
        // 接口需要验证的可以将json转成数组添加值再调用
        // 不需要的可以直接data:data
        return new Promise((resolve, reject) => {
            uni.request({
                method: method,
                url: url,
                data: arr[0],
                // data:data
                header: {
                    'content-type': 'application/x-www-form-urlencoded'
                },
                success: function(result) {
                    // resolve调用后,即可传递到调用方使用then或者async+await同步方式进行处理逻辑
                    resolve(result)
                },
                fail: function(e) {
                    console.log('error in...')
                    // reject调用后,即可传递到调用方使用catch或者async+await同步方式进行处理逻辑
                    reject(e)
                },
            })
        })

    },
    
}

调用:

that.$req.doRequest().then(res => {
                // 获得数据
                console.log(res);
                that.infoList = res.data.data;
                setTimeout(function() {
                    that.loadingActive = false;
                }, 200);
            })
            .catch(res => {
                console.log(res);
            });

全局注册:

import Req from 'common/js/request.js'
Vue.prototype.$req = Req;