小程序Promise二次封裝wx.request

在開發(fā)項目過大時,太多的接口如果不進行封裝的話會很難以管理,今天就來說一下怎么通過Promise進行二次封裝wx.request
第一步

在根目錄中創(chuàng)建config.js文件,把我們接口的前綴放在里面(不要忘記導(dǎo)出
config.js代碼如下:

const config = {
loginUrl: 'https://www.*****.com',
url: 'https://www.*****.com'
}

export { config }
第二步

在根目錄中創(chuàng)建utils文件夾并在utils目錄中創(chuàng)建http.js文件
http.js代碼如下:

import { config } from '../config.js'
class HTTP {
request(params) {
  return new Promise((resolve, reject) => {
    wx.request({
      url: config._url + params.url,
      method: params.method || 'GET',
      data: params.data || null,
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: res => {
        resolve(res)
      },
      fail: err => {
        reject(err)
      }
    })
  })
}
export { HTTP }
第三步

再次給接口分類,在根目錄下創(chuàng)建models文件夾,models里將不同頁面的不同接口進行分類例如,public.js公共接口、index.js首頁需要用的接口
例如index.js代碼:

import { HTTP } from '../utils/http.js'
const _HTTP = new HTTP()

class IndexModel {
// 商鋪列表
dataList (page, rows) {
 return _HTTP.request({
   method: 'POST',
   url: '/***',
   data: {
     page,
     rows
   }
 })
}
// 商鋪詳情
dataDetail (id) {
 return _HTTP.request({
   method: 'POST',
   url: '/***',
   data: {
     id
   }
 })
}
export default IndexModel
第四步

在對應(yīng)的js文件中直接調(diào)用就ok

import IndexModel from '../../models/index.js'
let _index = new IndexModel()

例如在onLoad生命周期里使用我們前面封裝的接口

//生命周期函數(shù)--監(jiān)聽頁面加載
onLoad: function (options) {
  // 商鋪列表
  _index.dataList('2', '10').then(res => {
    console.log(res)
  })
  // 商鋪詳情
  _index.dataDetail('136').then(res => {
    console.log(res)
  })
}

這種方法更利于我們后面的維護和管理

歡迎關(guān)注支持,謝謝!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容