async,await模拟所有请求返回后执行某个操作

之前项目中遇到过这样的需求,前端一个页面有很多数据需要向后端请求,当所有请求都返回时才会继续下面的动作,我看其它人是用请求嵌套写法去搞的,但是这些请求之间并没有依赖关系,这样会导致浪费效率,今天学了一招,可以用Promise.all去返回一个新的promise,上代码

<script>
        function timer(timeout,name)
        {
        	// 这里用定时器模拟,可以换为ajax请求
            return new Promise(resolve => {
                setTimeout(()=>{
                    console.log(name)
                },timeout);
            })
        }

        async function allP()
        {
            let p1 = timer(1000,'请求1');
            let p2 = timer(1000,'请求2');
            let p3 = timer(1000,'请求3');
            await Promise.all([p1,p2,p3]);
        }
        allP();
    </script>

如果是同步方式做需要3秒,而这么做1秒就返回了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值