小程式 二次封裝wx.request方法

chenjunbiao發表於2018-09-19

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){
                ...
            }
        })
    },
})

相關文章