小程序模板網(wǎng)

微信小程序封裝wx.request

發(fā)布時(shí)間:2021-06-03 10:39 所屬欄目:小程序開發(fā)教程
在小程序開發(fā)中,通過接口獲取后臺(tái)數(shù)據(jù),這時(shí)候我們不得不在每個(gè)頁(yè)面的js文件中寫到:wx.request({

url:'',.....}) 但是調(diào)用很多接口的時(shí)候,會(huì)非常頻繁的使用request,作為一名php開發(fā)人員,顯然我們需要對(duì)他進(jìn)行一下封裝:

1.在utils同級(jí)目錄下建立service



2.typeof cb == "function" && cb(res.data) 我的理解是

利用的&&的運(yùn)算規(guī)律,首先判斷cb是不是一個(gè)方法, 這里的==可以作為類型是否相當(dāng)?shù)呐袛啵缓笤?amp;&中如果前面的不滿足,

后面的則不會(huì)執(zhí)行;如果是cb是一個(gè)方法,調(diào)用cb方法,并且傳入success成功回調(diào)的userinfo參數(shù)

并且return 的是回調(diào)函數(shù),而不是具體的數(shù)據(jù)

var rootDocment = 'https://xxxxxxxxxxxxx/';
var header = {
  'Accept': 'application/json',
  'content-type': 'application/json',
  'Authorization': null,
}
function getReq(url, cb) {
  wx.showLoading({
    title: '加載中',
  })
  console.log("header=="),
    console.log(header)
  wx.request({
    url: rootDocment + url,
    method: 'get',
    header: header,
    success: function (res) {
      wx.hideLoading();
      return typeof cb == "function" && cb(res.data)
    },
    fail: function () {
      wx.hideLoading();
      wx.showModal({
        title: '網(wǎng)絡(luò)錯(cuò)誤',
        content: '網(wǎng)絡(luò)出錯(cuò),請(qǐng)刷新重試',
        showCancel: false
      })
      return typeof cb == "function" && cb(false)
    }
  })
}
 
function postReq(url, data, cb) {
  wx.showLoading({
    title: '加載中',
  })
    console.log("header=="),
    console.log(header),
    wx.request({
      url: rootDocment + url,
      header: header,
      data: data,
      method: 'post',
      success: function (res) {
        wx.hideLoading();
        return typeof cb == "function" && cb(res.data)
      },
      fail: function () {
        wx.hideLoading();
        wx.showModal({
          title: '網(wǎng)絡(luò)錯(cuò)誤',
          content: '網(wǎng)絡(luò)出錯(cuò),請(qǐng)刷新重試',
          showCancel: false
        })
        return typeof cb == "function" && cb(false)
      }
    })
 
}
module.exports = {
  getReq: getReq,
  postReq: postReq,
  header: header,
}  
header 中的一些數(shù)據(jù)可能是需要在app.js中登錄后返回的Token,這時(shí)候我們需要在app.js中

var http = require('service/http.js')

http.header.Authorization = 'Bearer '+res.data;//給header 賦值

// 將方法暴露出去

getReq: http.getReq,

postReq: http.postReq,


使用:

    http.getReq("item/getshopbanner/"+getApp().globalData.shopIdx,function(res){
                      console.log("banner==")
                      console.log(res)
                    })


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉(cāng)庫(kù):starfork
本文地址:http://22321a.com/wxmini/doc/course/26048.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢