function wxPromisify(fn) { return function (obj = {}) { return new Promise((resolve, reject) => { obj.success = function (res) { //成功 console.log("成功了了·····" + res); setTimeout(function () { wx.hideLoading(); }, 100); if(res.data.code=="200"||res.data.code=="10219"){ resolve(res) }else{//拋出異常 setTimeout(function () { wx.hideLoading(); }, 100); wx.showModal({ title: '提示', content: res.data.message, confirmColor: '#118EDE', showCancel: false, success: function (res) { if (res.confirm) { //console.log('用戶點擊肯定') } } }); } } obj.fail = function (res) { //失敗 console.log("失敗了·····"+res); setTimeout(function () { wx.hideLoading(); }, 100); wx.showToast({ title: '服務器暫時沒法鏈接', icon: 'loading', duration: 2000 }) reject(res) } fn(obj) }) } } //不管promise對象最後狀態如何都會執行 Promise.prototype.finally = function (callback) { let P = this.constructor; return this.then( value => P.resolve(callback()).then(() => value), reason => P.reject(callback()).then(() => { throw reason }) ); }; /** * 微信請求get方法 * url * data 以對象的格式傳入 */ function getRequest(url, data) { var getRequest = wxPromisify(wx.request) return getRequest({ url: url, method: 'GET', data: data, header: { 'Content-Type': 'application/json' } }) } /** * 微信請求post方法封裝 * url * data 以對象的格式傳入 */ function postRequest(url, data) { var postRequest = wxPromisify(wx.request) return postRequest({ url: url, method: 'POST', data: data, header: { "content-type": "application/x-www-form-urlencoded" }, }) } /** * 微信請求post方法封裝 * url * data 以對象的格式傳入 */ function postRequestJson(url, data) { var postRequest = wxPromisify(wx.request) return postRequest({ url: url, method: 'POST', data: data, header: { 'Content-Type': 'application/json' }, }) } /** * 微信請求post方法封裝 * url * data 以對象的格式傳入 */ function postRequestParamAndBody(url,param, data) { var str = "?"; for (var key in param) { str = str + "&" + key + "=" + param[key] }; var postRequest = wxPromisify(wx.request) return postRequest({ url: url+str, method: 'POST', data: data, header: { 'Content-Type': 'application/json' }, }) } /** * 微信請求put方法封裝 * url * data 以對象的格式傳入 */ function putRequest(url, data) { var str = "?"; for (var key in data) { str = str + "&" + key + "=" + data[key] }; var putRequest = wxPromisify(wx.request) return putRequest({ url: url + str, method: 'PUT', data: data, header: { "content-type": "application/x-www-form-urlencoded" }, }) } /** * 微信請求put方法封裝 * url * data 以對象的格式傳入 * parmare對象傳入 */ function putRequestParamAndBody(url, parmaer, data) { var str = "?"; for (var key in parmare) { str = str + "&" + key + "=" + parmare[key] }; var putRequest = wxPromisify(wx.request) return putRequest({ url: url + str, method: 'PUT', data: data, header: { "content-type": "application/x-www-form-urlencoded" }, }) } /** * 微信請求delete方法封裝 * url * data 以對象的格式傳入 */ function deleteRequest(url, data) { var str="?"; for(var key in data){ str = str + "&" + key + "=" + data[key] }; console.log(str); var deleteRequest = wxPromisify(wx.request) return deleteRequest({ url: url + str, method: 'DELETE', data:data, header: { 'Content-Type': 'application/x-www-form-urlencoded' } }) } module.exports = { postRequest: postRequest, getRequest: getRequest, putRequest: putRequest, postRequestJson: postRequestJson, deleteRequest: deleteRequest, postRequestParamAndBody: postRequestParamAndBody }