1. 程式人生 > >微信小程式對wx.request函式進行封裝操作的程式碼示例

微信小程式對wx.request函式進行封裝操作的程式碼示例

//app.js
App({
  onLaunch: function () {
  },
  networkEngine: require('utils/network.js')
})
//      /utils/network.js
module.exports ={
  send:function(){
    console.log(arguments);
    var that = this;
    var pack = {};
    if(arguments.length == 1){
      pack = arguments[0];
    }else if(arguments.length == 3){
      pack.url = arguments[0];
      pack.data = arguments[1];
      pack.complete = arguments[2];
    } else{
      throw new Error('arguments_error');
    }
    var newPack = {};
    newPack = pack.data;
    var url = '';
    if(pack.url.indexOf('/') === 0){
      url = pack.url.substr(1, pack.url.length - 1);
    }else{
      url = pack.url;
    }
    wx.request({
      url: "https://xxxxx" + '/' + url,
      data: newPack,
      header:{
        'Content-Type': 'application/json'
      },
      method: 'POST',
      success:function(res){
        console.log('res:', res);
        pack.complete(res.data.code, res.data.msg, res.data.data, pack.data);
      },
      fail:function(res){
        pack.complete(-1, 'wechat_error', res, pack.data);
      },
      complete: function (res) {
      }
    })
  }
}

//index.js
//獲取應用例項
const app = getApp()
//import ListLodingState from '../list_loading_state/list_loading_state.js';
Page({
  data: {
    isVip: 50
  },
  onLoad: function () {
    let instance = this;
    instance.componentInit();
    instance.initData();
  },
  componentInit:function(){
    let instance = this;
  //  instance.listLoadingState = new ListLoadingState(instance);
  },
  initData: function(){
    let self = this;
    self.loadData();
  },
  loadData: function(){
    let self = this;
    let instance = this;
    let cmd = "isVip.php";
    let paramter = {
      user_id: 61152144
    }

    let successFn = function(data, app, instance){
      console.log("1st request"); 
    }
    let errorFn = function(){

    }
    self._ajax(app, instance, cmd, paramter, successFn, errorFn);
  },
  _ajax: function(app, instance, cmd, paramter, successFn, errorFn){
      let appTemp = app;
      let instanceTemp = instance;
      app.networkEngine.send(cmd, paramter, function(code, msg, data){
        if(code == 0){
          successFn(data, appTemp, instanceTemp);
          instance.setData({
            pageLoading: true,
            show_network_error: false,
          });
        } else {
          errorFn('微信呼叫networkEngine出現錯誤');
          instance.setData({
            pageLoading: true,
            show_network_error: true,
          });
        }
      })

  }
})