在開發小程序的時候免不了要向後臺發送接口請求,若是每次都用wx.request,代碼量會大大增長,要知道小程序如今最大不能超過2m,因此將發送請求的封裝在一個公共類函數中
javascript
結構以下:java
封裝的request請求:es6
var request = { /** * 請求接口方法 * @param{url}請求url * @param{method} 請求方式 * @param{data} 請求參數 */ momoRequest(url, method, data) { method = method || "GET"; method = method.toUpperCase(); //轉化爲大寫 // console.log("接口請求: " + url + " method:" + method); return new Promise((resolve, reject) => { wx.request({ url: url, method, data, success: function (res) { if (res.statusCode != 200) { reject({ error: '服務器忙,請稍後重試', code: 500 }); return; } let apiRes = res.data; if (apiRes.code != 200) { let msg = apiRes.message ? apiRes.message : '接口請求錯誤'; let code = apiRes.code ? apiRes.code : 500; reject({error: msg, code: code}); return; } resolve(apiRes.data); }, fail: function (err) { reject({ error: '網絡錯誤', code: 0 }); } }); }) } }
暴露函數:小程序
//導出方法類 module.exports = { request: request }
根據es6語法,應用回調函數Promise,return接口返回數據api
在page頁面的js中應用:服務器
先引用函數:網絡
//引入工具類 import * as momo from "../utils/util.js";
調用函數:函數
//接口請求 momo.request.momoRequest(url, 'GET', data).then( function(data) { console.log(data); }, function(err) { console.log(err); }