Skip to content

"axios"请求去重,同样参数的请求,只发起一个真实请求,但几个请求的地方都能收到请求的结果。

Notifications You must be signed in to change notification settings

matiastang/matias-axios-throttle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

唐道勇唐道勇
唐道勇
and
唐道勇
Apr 12, 2022
ad8556c · Apr 12, 2022
Nov 3, 2021
Jan 12, 2022
Jan 5, 2022
Dec 29, 2021
Apr 12, 2022
Nov 17, 2021
Apr 12, 2022
Dec 16, 2021
Oct 19, 2021
Dec 6, 2021
Apr 8, 2022
Jan 4, 2022
Oct 19, 2021
Oct 28, 2021
Apr 12, 2022
Dec 16, 2021
Mar 31, 2022
Apr 8, 2022
Apr 8, 2022
Apr 12, 2022
Apr 11, 2022
Apr 8, 2022
Apr 12, 2022
Apr 12, 2022
Apr 8, 2022

Repository files navigation

matias-axios-throttle

说明

该项目为基于axios的一个接口节流功能,当调用一个请求后,在该请求未返回时再次调用了相同接口,如果参数相同则将复用上一个请求的结果,但两个调用接口的回调都将收到请求的结果。一个常见的应用常见是,不同组件里面封装调用了相同接口,组件又在同一个页面中渲染。

安装与使用

  1. 安装matias-axios-throttle
  • pnpm导入

$ pnpm add -D matias-axios-throttle

  • yarn导入

$ yarn add -D matias-axios-throttle

  • npm导入

$ npm install -D matias-axios-throttle

  1. 使用
  • 仅需要用requestThrottle替换掉最后发起请求的方法。
import {
    requestThrottle,
    abortAll,
    abortRequestTasks,
    keepRequestTasks,
    getRequestUrls,
} from '../throttle/index'

/**
 * 节流请求
 * @param httpAxios axios实例,将用该实例发起请求
 * @param options 请求配置,类型同axios
 * @returns promise
 */
requestThrottle(httpAxios, requestConfig)
    .then((response) => {
        console.log('请求成功')
    })
    .catch((err) => {
        console.log('请求失败')
    })
  1. 使用requestThrottle发起请求
  2. 开放几个操作任务的方法:
  • abortAll取消全部请求
  • getRequestUrls获取当前请求的所有地址
  • abortRequestTasks取消指定的请求
  • keepRequestTasks保留指定请求,其他全部移除

注意abortRequestTaskskeepRequestTasks的参数都是url

注意两次相同requestThrottle返回的的结果顺序和调用顺序是相反的。

版本

0.1.1

  • 更新说明文档

0.1.0

  • 实现基本功能

About

"axios"请求去重,同样参数的请求,只发起一个真实请求,但几个请求的地方都能收到请求的结果。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published