1.0.8 • Published 2 years ago

@zhangjr0575/request v1.0.8

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

http请求工具,封装微信小程序、支付宝小程序、uni-app的request请求使其可以实现类似axios的调用方式

实现情况

  • ✅ 微信小程序
  • ✅ 支付宝小程序
  • ✅ uni-app

创建一个公用的请求实例

import Fetch from '@zhangjr0575/request';
// 实例化支持baseURL, headers以及timeout
const request = new Fetch({
    baseURL: 'http://wthrcdn.etouch.cn'
});

添加一个请求拦截器

拦截器我们可以创建多个,因为我们并没有限制允许设置的拦截器的上限数量

request.interceptors.request.use(function(config) {
    // TODU
    return config;
});

当我们返回一个false或则Promise.reject()时,当前请求将会被终止

request.interceptors.request.use(function(config) {
    return Promise.reject();
});

添加一个响应拦截器

响应体内容统一类型格式为{data: any; headers: Record<string, string>; statusCode: number}

request.interceptors.response.use(function(res) {
    // TODU
    return res;
});

添加一个异常拦截器

任何非200的http请求状态将会在这里被监听到, 异常内容统一类型格式为{errCode: number; errMsg: string}

request.interceptors.httpError.use(function(res) {
    // TODU
    return res;
});

发起一个http请求

request.get('/weather_mini1', { city: '成都' }).then(res => {
    console.log(res);
}).catch(error => {
    console.log(error);
});

移除一个拦截器

当我们添加一个拦截器后会返回一个值, 此时我们可以记录这个值并使用eject在适当的时候移除这个拦截器

const interceptorId = request.interceptors.response.use(function(res) {
    // TODU
    return res;
});
// TODU
request.interceptors.response.eject(interceptorId);
1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago