微信小程序用promise封裝請求


1.在根目錄utils中新增request.js,(post也可以改成這種promise寫法,post暫時用的回調寫法)並寫:

var app = getApp();
//項目URL相同部分,減輕代碼量,同時方便項目遷移
//這里因為我是本地調試,所以host不規范,實際上應該是你備案的域名信息
var host = '域名';

/**
 * POST請求,
 * URL:接口
 * postData:參數,json類型
 * doSuccess:成功的回調函數
 * doFail:失敗的回調函數
 */
function Request(url, postData, doSuccess, doFail) {
  wx.request({
    //項目的真正接口,通過字符串拼接方式實現
    url: host + url,
    header: {
      "content-type": "application/json;charset=UTF-8"
    },
    data: postData,
    method: 'POST',
    success: function (res) {
      //參數值為res.data,直接將返回的數據傳入
      doSuccess(res.data);
    },
    fail: function () {
      doFail();
    },
  })
}

//GET請求,不需傳參,直接URL調用,
function GetData(url) {
  return new Promise((resolve,reject)=>{
    wx.request({
      url: host + url,
      header: {
        "content-type": "application/json;charset=UTF-8"
      },
      method: 'GET',
      success: function (res) {
        resolve(res.data);
      },
      fail: function () {
        reject();
      },
    })
  })
}

/**
 * module.exports用來導出代碼
 * js文件中通過var call = require("../util/request.js")  加載
 * 在引入引入文件的時候"  "里面的內容通過../../../這種類型,小程序的編譯器會自動提示,因為你可能
 * 項目目錄不止一級,不同的js文件對應的工具類的位置不一樣
 */
module.exports = {
  Request,
  GetData,
}

2.調用

var call = require("../../utils/request.js")
Page({
  getData() {
    call.GetData('/service_today').then(res=>{
      console.log(123,res);
    })
  },
})

  注:開發階段不必用https請求,可先用http請求,等開發完成配合后台設置為https請求(勾上這個http本地開發階段用就不會報錯了)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM