后台response向小程序返回参数_手写简易版axios拦截器,实现微信小程序wx.request的封装与拦截...

本文介绍了如何在小程序开发中,模仿axios实现一个简易的请求拦截器,通过自定义beforeRequest和beforeResponse函数,增强wx.request的功能。详细阐述了拦截器的实现思路、结构及具体函数的实现,并给出了使用样例。
摘要由CSDN通过智能技术生成

前言: axios是一个功能强大的网络请求库,其中拦截器又是axios的精髓。在小程序的开发或者需要手动实现ajax的时候,没有实现对请求的拦截,开发的时候非常不方便,因此手写一个简易版的axios拦截器。

拦截器的实现

1、实现思路

1、实现一个通用的请求request函数,所有请求都调用这个函数去进行网络请求

2、请求调用request函数

3、在正式发送请求前,执行请求前beforeRequest拦截函数

4、拿到beforeRequest的返回值,其返回值是修改后的请求参数config

5、正式发送请求

6、在请求响应后,执行beforeResponse函数,其返回值是对response数据处理后的值

7、request正式返回,请求结束

2、简易版axios的结构

根据实现思路得出的axios的结构

class Axios {

constructor() {

// 定义拦截器对象

this.interceptors = {}

// 默认的配置文件

this.config = {}

}

// axios的初始化函数,初始化时对config进行赋值

static create(){}

// 请求发送前的拦截函数

beforeRequest() {}

// 请求响应的拦截函数

beforeResponse() {}

// 通用的request函数

async request() {}

// 真正发送请求的函数

sendRequest(config) {}

// get请求

get(){}

// post请求

post(){}

}

export default Axios

为了实现方便,我把axios声明为一个class,里面主要实现了几个关键函数:createbeforeRequestbeforeResponserequestsendRequest。其中请求方法大家可以根据需求加,我这里列了两个常用的, getpost

3、具体函数的实现
1this.interceptors

this.interceptors = {

// 请求拦截

request: {

// 给函数绑定当前的this,否则this会指向request

use: this.beforeRequest.bind(this),

success: noonFunc,

fail: noonFunc

},

// 相应拦截

response: {

use: this.beforeResponse.bind(this),

success: noonFunc,

fail: noonFunc

}

}

拦截器对象,对象里面包括了两个对象, requestresponse,其中 use就是调用拦截器的使用函数,如

axios.interceptors.request.use()

axios.interceptors.response.use()

2this.config

默认的配置文件

// 默认的配置文件

this.config = {

// 请求的基础路由

baseURL: 'http://127.0.0.1/',</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值