小程序中网络请求的封装

小程序中发送网络请求的API:wx:request(),基本用法:

wx.request({
     url: '请求地址',
     success:(res)=>{
     //请求成功时执行
         console.log(res);
      }
 })

传参的用法:

复制代码
wx.request({
    url: '请求地址',
    data: {
        //参数
     },
     success: (res) => {
        console.log(res);          
      }
})
复制代码

在发送网络请求时需要多次使用wx:request发送网络请求,使得代码冗余,并且不利于后期维护,如果有嵌套调动会出现回调地狱,所以将其进行封装

方法一:封装成函数

复制代码
export function request(options){
    return new Promise((resolve, reject) => {
        wx.request({
            ...options,
            success: (res) => {
                resolve(res.data)
            },
            fail: reject
        })
    })
}
复制代码

调用封装函数发送网络请求

import { request } from 'xxxx'

request({
    url: "请求地址"
}).then((res)=>{
     console.log(res);
  })

异步方法

async getAllData(){    
    const res= await request({
       url: "请求地址"
    })
    //  设置值
    this.setData({ allData: res.data })
}

 

方法二:封装成类

复制代码
class Request{
    constructor(baseURL){
        this.baseURL = baseURL
    }
    request(options){
        const { url } = options
        return new Promise((resolve,reject) => {
            wx.request({
              ...options,
              url: this.baseURL + url,
              success: (res) => {
                  resolve(res)
              },
              fail: reject
            })
        })
    }
    get(options){
        return this.request({...options,method: 'get'})
    }
    post(options){
        return this.request({...options,method: 'post'})
    }
}
复制代码

导出类

export const requestInstance = new Request("baseURL")

使用类发送网络请求

复制代码

import { requestInstance } from 'xxxx'
requestInstance.get({
    url: "去除baseURL的部分路由"
}).then((res) => {
    console.log(res);
})

//带参数的请求
requestInstance.get({
    url: "去除baseURL的部分路由",
    data: {
      //参数
    }
}).then((res) => {
    console.log(res);
})
复制代码

 

posted @   jxweber  阅读(259)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示