小程序 二次封装wx.request方法

1,026 阅读1分钟

app.js

const apiHost = 'https://www.example.com';

/**
 * 统一调用接口
 */
function request(url,data,method) {
    return new Promise((resolve, reject) => {
        wx.showLoading({ title: '加载中...', duration: 6000})
        wx.request({
            url: apiHost + url,
            data: data || {},
            header: {
                'Content-Type': 'application/json;charset=UTF-8',
            },
            method: method || 'GET',
            dataType: 'json',
            responseType: 'text',
            success: res => {
                wx.hideLoading()
                let statusCode = res.statusCode
                if(statusCode >=200 && statusCode < 400 && res.data.code == 0){
                    resolve(res.data)
                }else{
                    reject(res)
                }
            },
            fail: res => {
                wx.hideLoading()
                wx.showToast({
                    title: '网络异常,请检查网络状态',
                    icon: 'none',
                    duration: 3000
                })
                reject(res)
            },
        })
    })
}
/**
 * get方法
 */
exports.getStudentInfo = function (openid) {
   let url = '/student/getByOpenId?open_id=' + openid
   return request( url )
}
/**
 * post方法
 */
exports.saveStudentInfo = function (data) {
    let url = '/student/save'
    return request( url , data , "POST" )
}

调用:index.js

const api = require("../../api.js")
Page({
    onShow: function() {
        this.getStudentInfo(openid)
    },
    getStudentInfo(openid){
        let _this = this;
        api.getStudentInfo(openid).then(res => {
            if(res.code === 0 && res.data){
                ...
            }
        })
    },
})