小程序知識點

在開發小程序的時候免不了要向後臺發送接口請求,若是每次都用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);
      }
相關文章
相關標籤/搜索