如何使小程序請求優雅化 解決繁瑣的(de)小程序會話管理 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

如何使小程序請求優雅化 解決繁瑣的(de)小程序會話管理

發表時(shí)間:2021-1-5

發布人(rén):融晨科技

浏覽次數:119

小程序原生的(de)wx.request請求代碼量繁瑣,且容易造成回調地(dì / de)獄,不(bù)利于(yú)維護。故用Promise封裝,大(dà)大(dà)減少代碼量,提高可維護性。

一、引入登錄态管理的(de)網絡請求組件weRequest

公司裏一位大(dà)佬開發的(de)登錄态管理的(de)網絡請求組件weRequest,解決繁瑣的(de)小程序會話管理,具體可以(yǐ)移步學習。引入後按照文檔指引配置request.js。

二、封裝包裹請求函數

  • 1.引入第一步的(de)配置文件request.ts
import weRequest from '../lib/request'
複制代碼
  • 2.封裝包裹函數(注意,以(yǐ)下是(shì)以(yǐ)ts編寫,可以(yǐ)根據需要(yào / yāo)改爲(wéi / wèi)js)
/**
 * 包裹函數
 * @param opts weRequest參數
 * @param data 接口參數
 * @param url cgi路徑
 * @param reqOpts 請求方式,默認爲(wéi / wèi)POST,可選
 */
let reqWrapper = (data: object, url: string, reqLoad?: boolean, reqOpts?: string) => {
    let param = Object.assign({}, data)
    return weRequest.request(Object.assign({}, {
        url: url,
        data: param,
        method: reqOpts? reqOpts : 'POST',
        showLoading: reqLoad? reqLoad : false //當爲(wéi / wèi)true時(shí),請求該cgi會有loading       
    }))
}
export default {
    // 把請求export出(chū)去,比如
    saveTest(opts: RequestBody.saveTest): Promise<ResponseBody.saveTest> {
        return reqWrapper(opts, url , true)
    },
}
複制代碼

三、小程序頁面中使用

  • 1.在(zài)對應的(de)頁面引入第二步的(de)文件,比如api.ts
import API from "../../api";
複制代碼
  • 2.請求格式如下
Page({
    data: {
        isLoading: true
    },

    onLoad(query: any) {
        loading = new Loading(this);
        this.test()
    },

    // 獲取品牌信息
    test: function () {
        let self = this;
        let entryData: RequestBody = {
            
        }
        API.getTest(entryData).then((res: any) => {
            let getData = http://www.wxapp-union.com/res.data;
            self.setData({
                
            })
        }).catch((err: string) => {
            console.error(err)
        })
    }
})

作者:mton95
來(lái)源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出(chū)處。

相關案例查看更多