封装一个成本低,效率快,简单又简洁的方法
在公共的js文件中:
function commonAjax(url, types, data) { //这里的tpyes个人根据项目情况来定,也可以完全区分开
wx.showLoading({
title: '加载中...',
})
// 获取公共配置
var app = getApp()
// 公共参数(一般写接口的时候都会有些公共参数,你可以事先把这些参数都封装起来,就不用每次调用方法的时候再去写,)
var publicParams = {
// token: '',// 例如:这是我们自己的验证规则
}
// 合并对象(公共参数加传入参数合并对象) mergeObj对象在下面 es5方式
// var datas = mergeObj(d, data)
var datas = Object.assign(publicParams,data) //es6的方式
// 这是es6的promise版本库大概在1.1.0开始支持的,大家可以去历史细节点去看一下,一些es6的机制已经可以使用了
var promise = new Promise(function (resolve, reject, defaults) {
// 封装reuqest
wx.hideLoading()
wx.request({
url: app.globalData.url + url,
data: datas,
method: (types === 1) ? 'GET' : 'POST',
header: (types === 1) ? { 'content-type': 'application/json' } : { 'content-type': 'application/x-www-form-urlencoded' },
success: resolve,
fail: reject,
complete: defaults,
})
});
return promise;
}
module.exports = {
commonAjax: commonAjax,
}
如何使用:
先导入 var commonRequest = require("../../x'x/x'x'x.js")
commonRequest.commonAjax("xxx/xxx", 2, {token: getApp().globalData.userData.token}).then(res=>{
console.log(res)
......other code
}, res => { wx.showToast({ title: '网络错误!', icon: "loading" }) })
}