zoukankan      html  css  js  c++  java
  • Promise.all和Promise.race区别,和使用场景

    参考:https://www.cnblogs.com/richard1015/p/9155564.html

             https://segmentfault.com/q/1010000012736340?sort=created

    一、Pomise.all的使用

    常见使用场景 : 多个异步结果合并到一起

    Promise.all可以将多个Promise实例包装成一个新的Promise实例。用于将多个Promise实例,包装成一个新的Promise实例。

    1.它接受一个数组作为参数。

    2.数组可以是Promise对象,也可以是其它值,只有Promise会等待状态改变。

    3.当所有的子Promise都完成,该Promise完成,返回值是全部值的数组。

    4.如果有任何一个失败,该Promise失败,返回值是第一个失败的子Promise的结果。

    二、Pomise.race的使用

    类似于Promise.all() ,区别在于 它有任意一个返回成功后,就算完成,但是 进程不会立即停止

    常见使用场景:把异步操作和定时器放到一起,如果定时器先触发,认为超时,告知用户

    Promise.race在第一个promise对象变为Fulfilled之后,并不会取消其他promise对象的执行。只是只有先完成的Promise才会被Promise.race后面的then处理。其它的Promise还是在执行的,只不过是不会进入promise.race后面的then内。

    Promise.allPromise.race都是有使用场景的。
    有些时候我们做一个操作可能得同时需要不同的接口返回的数据,这时我们就可以使用Promise.all
    有时我们比如说有好几个服务器的好几个接口都提供同样的服务,我们不知道哪个接口更快,就可以使用Promise.race,哪个接口的数据先回来我们就用哪个接口的数据。

  • 相关阅读:
    数据结构
    ADC
    SPI
    定时器原理
    IO中断
    恩智浦样片申请
    UART
    随机生成数字验证码
    判断网络是否连接Internet
    清理SQL数据库日志
  • 原文地址:https://www.cnblogs.com/laijinquan/p/11664579.html
Copyright © 2011-2022 走看看