微信小程序使用Promise封装wx.request详解

作者:函数茶馆

时间:2026-10-24

浏览:304

本文详细介绍如何在微信小程序中利用ES6的Promise特性封装原生wx.request接口。通过创建fetch、api和http三个模块,实现网络请求的统一管理与集中调用,从而简化代码结构,提升开发效率与用户体验。

文章目录

上篇文章介绍了基于Promise封装小程序wx.request的实现思路,本文将重点阐述具体的封装方法。

为什么要封装wx.request?

在实际开发中,调用多个接口API时,若不使用封装,代码编写将变得繁琐且可能引发性能问题。

通过封装,可以简化代码编写,提升用户体验,并便于后续代码的维护与修改。

对于封装的选择为什么使用promise?

在微信小程序开发中,wx.request 的调用方式与 jQuery 的 $.ajax 类似。鉴于 $.ajax 的封装已广为人知,且微信小程序支持 ES6 语法,利用 Promise 进行封装是一个理想的选择。

该怎么封装wx.request?

明确了封装理由与工具后,接下来针对wx.request进行具体封装。首先在开发工具中创建相关文件。

使用一个大文件夹包裹内容,并对各部分进行分工处理。

为什么要封装wx.request?

首先在fetch.js文件中,利用Promise对wx.request进行封装:


//promise封装wx.request
    module.exports=(url,data,method)=>{
        //先定义promise
        let promise=new Promise((resolve,reject)=>{
            wx.request({
                url:url,
                data:data,
                method:method,
 
                //成功时执行
                success(res){
                    resolve(res)
                },
 
                //失败时执行
                fail(err){
                    reject(err)
                },
    })
    })
                //将promise推出去
                return promise
    }

随后,在api.js文件中集中存放所有需要请求的接口配置,以便统一管理:


//接口的管理
module.exports={
    "banner":"/h8/home/multidata"
}

最后,在http.js文件中将上述模块集中起来使用:


//引入文件
    const api=require("./api")
    const fetch=require("./fetch")
 
//定义路径
    let baseUrl="http://123.207.32.32:8000/api"
 
//导出内容
    function banner(){
        return fetch(baseUrl+api.banner,{},'get')
    }
 
    module.exports={
        banner
    }

封装完成后,需在全局app.js文件中引入方可使用:


  const http=require('./http/http.js')
 
    App({
      http,
    })

在具体页面文件中使用示例:


    //引入app
    const app=getApp()
 
    Page({
      data: {
       list:[]
      }
 
    onLoad: function () {
        app.http.banner().then(res)=>{
            this.setData({
                list:res.data.data.banner.list        
        })
            }
    }

至此,关于使用Promise封装wx.request的方法介绍完毕。如需了解更多相关内容,可搜索本站往期文章或继续阅读后续文章,感谢支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章