zoukankan      html  css  js  c++  java
  • 关于微信小程序的请求函数封装

    //微信小程序请求函数的封装
    
    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)
      }
  • 相关阅读:
    Delphi IDE 设置
    我最喜欢的歌曲
    Window 常用文件
    Delphi TTable 组件
    Delphi TDatabase 组件
    c语言->和 .
    Shell 工具之 gawk
    Shell 工具之 sed
    Shell 语法之函数
    Shell 语法之信号与作业
  • 原文地址:https://www.cnblogs.com/sisxxw/p/13918031.html
Copyright © 2011-2022 走看看