【js异步任务】多次触发异步任务时,只留最后一个结果

js异步任务:多次触发异步任务时,只留最后一个结果

在 JavaScript 异步编程中,处理多个异步任务并统一管理任务状态是常见需求。本文将介绍一个经过优化的 AsyncTaskProcessor 类,通过简洁的代码实现异步任务的延迟监控、结果聚合及回调管理,帮助开发者更高效地处理异步场景。

一、核心代码:极简异步任务处理器

class AsyncTaskProcessor {
   
   
    constructor(asyncTask) {
   
   
        this.asyncTask = asyncTask; // 传入的异步任务函数
        this.resetState(); // 初始化状态
    }

    resetState() {
   
   
        this.maxDelay = 0; // 最大延迟时间
        this.maxDelayResult = null; // 最大延迟任务的成功结果
        this.maxDelayError = null; // 最大延迟任务的错误
        this.allTasksCount = 0; // 总任务数
        this.completedTasksCount = 0; // 已完成任务数
    }

    createTask() {
   
   
        return async (...args) => {
   
    // 生成包装后的异步任务
            const [value, delay] = args; // 解构参数(任务值、延迟时间)
            this.allTasksCount++; // 任务计数+1

            try 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今天也要暴富啊

感谢老铁们的打赏!

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

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

打赏作者

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

抵扣说明:

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

余额充值