封裝一個成本低,效率快,簡單又簡潔的方法
在公共的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" }) })
}