使用队列控制多个请求访问一个异步方法

在项目中遇到搜索功能导致的结果不准确问题,由于异步搜索请求的并发,造成搜索条件混乱。通过引入队列控制搜索请求,首次按下按钮时启动搜索并入队,后续仅入队条件,搜索方法按队列顺序执行,递归处理队列中的搜索条件,直至队列为空。这一解决方案提高了代码的逻辑性和搜索准确性,体现了经验和知识在解决问题中的重要性。
摘要由CSDN通过智能技术生成

  之前在项目进入测试阶段的时候,测试部给发了一个bug,大致是在搜索的时候搜索出来的东西和实际的不符合。

  于是我去翻代码,原来问题是搜索的时候每次键盘按下都会进行一次搜索,但是搜索时间是异步的,这就导致了上一次搜索还没结束下一次搜索就有开始了。代码的执行就想是一锅粥,乱成一团。搜索的结果自然是不可能准确的了。

  事实上,异步代码一旦调用频繁后,要么回调满地图跑,要么这些代码不要求有先后,规律。我见过一些代码,所有的请求都用异步,有时候两三个方法同时请求一个方法的时候,就会出现变量赋值错误,代码执行混乱等问题。。。。话题扯远了,回到搜索的问题,如果要处理这种问题该怎么办呢?我一直思考,都没有想出什么好办法。

  这时候就体现出了,经验与知识的重要性。我遍寻无果后,便去问了同事和经理,经过他们的指导,算是有了一些头绪。

  使用队列来控制搜索的次数与条件。

  

            //队列
            Queue:function(){
                var arr = [];
                //入队
                this.push = function (item) {
                    arr.push(item);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值