解决异步任务(例如请求)太多导致 后续需要立即执行的请求挂起

本文介绍了await-num-q库,用于在浏览器端限制并发异步任务数量,避免请求挂起。通过实例展示了如何导入、初始化和使用这个库,以及其提供的API功能如添加任务、运行任务和获取返回值。
摘要由CSDN通过智能技术生成

await-num-q 限数阀

介绍

这是一个用于解决异步任务数量太大需要限制异步任务数量的 库,比如浏览器端 一次性发送很多的请求会导致请求挂起,例如在有大量图片加载时 网络不太好会导致后续其他的接口请求挂起得不到反馈,这时需要一个工具来解决同时请求图片的数量不得大于某个值,这样后续的接口请求才能正常的发送。于是此库便诞生了

下载

npm i await-num-q
# or
pnpm i await-num-q
# or
yarn i await-num-q

使用

导入

import { asyncQueue } from 'await-num-q'

初始化队列

let q = new asyncQueue(3)// 3 表示能够同时在当前队列执行的任务数量

执行

async function test(){
    async function _get(){}
    let data = await q.wait(_get) // 这样就能拿到请求的数据 且不会超过指定数量
}

api列表

export type RunFunBoj = {
    status: "wait" | "ing" | "end";
    target: Function;
    callback?: Function;
    err?: Function;
};
export declare class asyncQueue {
    #private;
    constructor(max?: number);
    /**
     * 添加任务
     * @param f 目标函数
     * @param callback 成功回调函数
     * @param err 错误回调函数
     * @returns 添加成功与否
     */
    push(f: Function, callback?: Function, err?: Function): boolean;
    /**
     * 清除运行完成的任务
     */
    clear(): void;
    /**
     * 添加并运行任务 若是没有传入函数 运行 之前传入的任务
     * @param f 目标函数
     * @param callback 成功回调函数
     * @param err 错误回调函数
     * @returns 添加成功与否
     */
    run(f?: Function, callback?: Function, err?: Function): Promise<void>;
    /**
     * 异步运行并得到返回值
     * @param fun 目标函数
     * @returns
     */
    wait(fun: (...arg: any) => any): Promise<any>;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梵颜夕不会发疯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值