关于微信小程序的请求函数封装

//微信小程序请求函数的封装

const BASE_URL = "XXXXXXXXXXXXXXXXXXXX";

class Request {
    /**
     * Request请求方法
     * @param  {String} url    链接
     * @param  {Objece} params 参数
     * @param  {Boolean} isToken  是否携带token
     * @return {Promise}       包含抓取任务的Promise
     */
    getApi(url, params, isToken, isbinding,isshowerror) {

        if (isToken === undefined) isToken = true;
        if (isbinding === undefined) isbinding = true;
        if (isshowerror === undefined) isshowerror = false;
        

        let token = wx.getStorageSync('token') || '';
        let uKey = wx.getStorageSync('uKey') || '';

        const promise = new Promise((resolve, reject) => {
            //判断是否需要置入token
            if (isToken) params = Object.assign({sessionId:token}, params)
            wx.request({
                url: `${BASE_URL}${url}`,
                method: 'POST',
                data: params, //置入token
                header: { 'Content-Type': 'application/x-www-form-urlencoded', 'token': token, 'uKey': uKey },
                success: res => {
                    console.log(res);
                    
                    if (res.statusCode == 200) {
                        if(res.data.code ==1){
                            resolve(res);
                        }else if(res.data.code ==2){
                            wx.navigateTo({
                              url: '/pages/login/index',
                            })
                        }else{
                            wx.showToast({
                              title: res.data.desc,
                              icon:'none',
                              duration:800
                            })
                        }
                        

                    } else {
                        wx.showToast({
                            title: '[' + res.code + '] 服务器出错,请重试',
                            icon: 'none',
                            duration:800
                        });
                        reject();
                    }
                },
                fail: err => {
                    wx.showToast({
                        title: '网络错误',
                        icon: 'none',
                        duration:800
                    });
                    reject();
                },
                complete: res => {

                }
            });
        });

        if (token == '' && isToken) {
            return new Promise((resolve, reject) => {
                wx.showToast({
                    title: '状态失效,请关闭小程序后,重新打开',
                    icon: 'none'
                });
            });
        } else {
            return promise;
        }
    }

}

let request = new Request();

module.exports = {
    post: request.getApi,
    url: BASE_URL
}
//微信小程序请求函数的引用
/**
   * 登录
   * @return {Promise}
   */
  login(params) {
    return request.post(`/XXXXXXXXXXX`,params,false).then(res => res.data)
  }
  /**
   * 获取问题列表和内容
   * @return {Promise}
   */
  question(params) {
    return request.post(`/XXXXXXXXXXX`,params).then(res => res.data)
  }
原文地址:https://www.cnblogs.com/sisxxw/p/13918031.html