微信小程式對wx.request函式進行封裝操作的程式碼示例
阿新 • • 發佈:2019-02-16
//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, }); } }) } })