如何使小程序请求优雅化 解决繁琐的小程序会话管理 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

如何使小程序请求优雅化 解决繁琐的小程序会话管理

发表时间:2021-1-5

发布人:葵宇科技

浏览次数:109

小程序原生的wx.request请求代码量繁琐,且容易造成回调地狱,不利于维护。故用Promise封装,大大减少代码量,提高可维护性。

一、引入登录态管理的网络请求组件weRequest

公司里一位大佬开发的登录态管理的网络请求组件weRequest,解决繁琐的小程序会话管理,具体可以移步学习。引入后按照文档指引配置request.js。

二、封装包裹请求函数

  • 1.引入第一步的配置文件request.ts
import weRequest from '../lib/request'
复制代码
  • 2.封装包裹函数(注意,以下是以ts编写,可以根据需要改为js)
/**
 * 包裹函数
 * @param opts weRequest参数
 * @param data 接口参数
 * @param url cgi路径
 * @param reqOpts 请求方式,默认为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 //当为true时,请求该cgi会有loading       
    }))
}
export default {
    // 把请求export出去,比如
    saveTest(opts: RequestBody.saveTest): Promise<ResponseBody.saveTest> {
        return reqWrapper(opts, url , true)
    },
}
复制代码

三、小程序页面中使用

  • 1.在对应的页面引入第二步的文件,比如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
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关案例查看更多