• 使用Promise异步并发请求,使用Promise并发的场景是什么


    Promise是异步编程的一种解决方案,在ES6中Promise被列为了正式规范,统一了用法,原生提供了Promise对象,可以通过new 一个promise来使用它。  

    就我而言,使用并发请求的场景还是不会很少的,Promise简直太完美,太好用。

    1、使用Promise并发的方法:

    注:all会等两个成功才表示请求成功(如果其中一个接口被跨域或者网络中断了,那么这整个promise.all就会失败),如果一个接口处于pending状态,那么resultData这个值会一直处于等待状态。

    使用all方法

    //请求1
    fetch1 = () => {
    return http.post(`/aa/1`).then(res => { //return整个promis结果,返回给resultData,resultData通过.then接收
    if (res.code === 0) {
    return res.data;
    }
    });
    };
    //请求2
    fetch2 = () => {
    return http.post(`/aa/2`).then(res => { //return整个promis结果,返回给resultData,resultData通过.then接收
        if (res.code === 0) {
    return res.data;
    }
    });
    };

    const   resultData =   Promise.all([fetch1,fetch2])    //异步并发,里面有几个就写几个
    
    resultData.then(res=>console.log(res))                 //通过.then获取的都异步请求结果,是一个数组,长度与上面并发里面数组的长度一样,就是每个接口相对应的结果


    2、Promise并发使用的场景:

      1、之前我有个用户列表有重置按钮和编辑的功能,这两个都是不同接口。

     2、现在需求变更了,需要将重置密码改到编辑弹窗里面,给用户输入密码。点击确定时候需要去同时做到两个接口处理完毕loading后才关闭弹窗的效果

     这时候就需要并发异步请求去请求接口了。(题外话:做法可以通过后端直接修改接口去完成,前端也不用并发,但是前端处理并不难。)

    事实上这种场景还是有很多的,如:需要通过获取两个接口的值,然后再去等这两个接口请求的值,作为参数去请求另一个接口的情况也有过。我就不一一例举了。

    末尾贴以下promis基本用法链接:这个人写的很清楚了,我只是贴出实际应用场景来结合用法。

    https://www.jianshu.com/p/3023a9372e5f

  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/seemoon/p/13680452.html
Copyright © 2020-2023  润新知