Promise.all

此方法在集合多个 promise 的返回结果时很有用。

输入的promise中只要有一个reject,即进入reject,否则会进入then

  • 完成(Fulfillment):在任何情况下,Promise.all 返回的 promise 的完成状态的结果都是一个数组,它包含所有的传入迭代参数对象的值(也包括非 promise 值)。
  • 失败/拒绝(Rejection):如果传入的 promise 中有一个失败(rejected),Promise.all 异步地将失败的那个结果给失败状态的回调函数,而不管其它 promise 是否完成。

返回值

  • 如果传入的参数是一个空的可迭代对象,则返回一个已完成(already resolved)状态的 Promise。
  • 如果传入的参数不包含任何 promise,则返回一个异步完成(asynchronously resolved)Promise。注意:Google Chrome 58 在这种情况下返回一个已完成(already resolved)状态的 Promise。
  • 其它情况下返回一个处理中(pending)的Promise。这个返回的 promise 之后会在所有的 promise 都完成或有一个 promise 失败时异步地变为完成或失败。

Promise.allSettled

Promise.allSettled() 方法是 promise 并发性方法的其中之一。

在你有多个不依赖于彼此成功完成的异步任务时,或者你总是想知道每个 promise 的结果时,使用 Promise.allSettled() 。

输入的promise无论成功or失败,都会统计到then的参数中返回

返回值

  • 如果传递的 iterable 是空的,则返回一个已完成(already resolved)状态的 Promise。
  • 当给定的 iterable 中所有 promise 已经敲定时(要么已兑现,要么已拒绝),则返回一个异步完成(asynchronously resolved)Promise。

Promise.any(实验性的)

一旦输入的任意一个promise变为resolved,那么该方法会resolve,否则变为reject

该方法用于获取首个兑现的 promise 的值。只要有一个 promise 兑现了,那么此方法就会提前结束,而不会继续等待其他的 promise 全部敲定。

返回值

  • 如果传入了一个空的可迭代对象,那么就会返回一个已经被拒的 promise
  • 如果传入了一个不含有 promise 的可迭代对象,那么就会返回一个异步兑现的 promise
  • 其余情况下都会返回一个处于等待状态的 promise。如果可迭代对象中的任意一个 promise 兑现了,那么这个处于等待状态的 promise 就会异步地(调用栈为空时)切换至兑现状态。如果可迭代对象中的所有 promise 都被拒绝了,那么这个处于等待状态的 promise 就会异步地切换至被拒状态。

Promise.race

一旦迭代器中的某个 promise 解决或拒绝,返回的 promise 就会解决或拒绝。

返回值

  • 如果传的迭代是空的,则返回的 promise 将永远等待。
  • 一个待定的 Promise 只要给定的迭代中的一个 promise 解决或拒绝,就采用第一个 promise 的值作为它的值,从而异步地解析或拒绝(一旦堆栈为空)。

Promise的几个方法解析的更多相关文章

  1. Python的方法解析顺序(MRO)[转]

    本文转载自: http://hanjianwei.com/2013/07/25/python-mro/ 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就 ...

  2. sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO

    sqlalchemy mark-deleted 和 python 多继承下的方法解析顺序 MRO 今天在弄一个 sqlalchemy 的数据库基类的时候,遇到了跟多继承相关的一个小问题,因此顺便看了一 ...

  3. iOS 详解NSXMLParser方法解析XML数据方法

    前一篇文章已经介绍了如何通过URL从网络上获取xml数据.下面介绍如何将获取到的数据进行解析. 下面先看看xml的数据格式吧! <?xml version="1.0" enc ...

  4. 四种方法解析JSON数据

    (1)使用TouchJSon解析方法:(需导入包:#import "TouchJson/JSON/CJSONDeserializer.h") //使用TouchJson来解析北京的 ...

  5. Method Resolution Order – Python类的方法解析顺序

    在支持多重继承的编程语言中,查找方法具体来自那个类时的基类搜索顺序通常被称为方法解析顺序(Method Resolution Order),简称MRO.(Python中查找其它属性也遵循同一规则.)对 ...

  6. 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析

    作者 : 韩曙亮 转载请著名出处 :  http://blog.csdn.net/shulianghan/article/details/38487967 一. MediaPlayer 状态机 介绍 ...

  7. 2019-2-20C#开发中常用加密解密方法解析

    C#开发中常用加密解密方法解析 一.MD5加密算法 我想这是大家都常听过的算法,可能也用的比较多.那么什么是MD5算法呢?MD5全称是 message-digest algorithm 5[|ˈmes ...

  8. C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)

    最近做的项目中服务器是英文的系统,系统需要通过excel的单元格导入日期,excel中的日期格式是系统默认的日期格式,如下图所示 以上日期格式,会跟着操作系统设置的日期格式相同例如我的中文系统的日期格 ...

  9. JSON.parse() 方法解析一个JSON字符串

    JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象.可以提供可选的reviver函数以在返回之前对所得到的对象执行变换. 语法EDIT JSON.pa ...

  10. python 方法解析顺序 mro

    一.概要: mor(Method Resolution Order),即方法解析顺序,是python中用于处理二义性问题的算法 二义性: 1.两个基类,A和B都定义了f()方法,c继承A和B那么C调用 ...

随机推荐

  1. DotNetCore2.1镜像上传DockerHub在Docker运行

    操作步骤: 1.本地安装Docker(此处省略安装过程) 2.登录Docker 3.浏览器打开官方DockerHub地址注册用户(注意:注册操作需要FQ才能成功,后期登录和其他操作使用国内网络都可以) ...

  2. 2022-05-23内部群每日三题-清辉PMP

    1.在项目执行过程中,职能经理识别到有关外包团队的新内部风险,职能经理要求项目经理提供一个不会对项目产生负面影响的快速解决方案.项目经理应该怎么做? A.制定风险分解结构(RBS) B.根据影响的严重 ...

  3. 性能测试工具locust压测介绍

    官方文档:https://docs.locust.io/en/stable/index.html 1.初识locust Locust 完全基本 Python 编程语言,采用python 编写压测脚本, ...

  4. k8s 删除 node节点

    查看现有状态 [root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master NotReady control-plan ...

  5. django项目 在进行数据生成迁移文件makemigrations时报Please select a fix:...

    问题:django项目 在进行生成迁移文件:python .\manage.py makemigrations时,报错,如图 原因:在之前项目新建模型的时候,缺少一个字段进行迁移了然后数据表中又产生了 ...

  6. GPS网络授时仪(网络授时服务器)成功投运攀枝花市中西医结合医院

    GPS网络授时仪(网络授时服务器)成功投运攀枝花市中西医结合医院 GPS网络授时仪(网络授时服务器)成功投运攀枝花市中西医结合医院 北京华人开创科技发展有限公司 技术交流15901092122岳峰 概 ...

  7. C# 将Dll文件打包到exe中

    首先在资源管理里面将需要使用的dll添加进入 然后将dll文件的生成操作改成嵌入的资源 然后新建一个类  LoadResourceDll.cs 1 using System; 2 using Syst ...

  8. 错误 C2664 “int fputs(const char *,FILE *)”: 无法将参数 1 从“char”转换为“const char *”解决方法

    遇到这个问题,请打开本项目的Properties(属性) -------> Configuration Properties(配置属性) -------->General(常规) ---- ...

  9. [Notes-DS-1]时间复杂度的几个概念和计算方法

    ..加点字才算原创?

  10. shell语法5-判断语句、循环语句、函数

    一.判断语句 if-then形式类似于C/C++中的if-else语句. 1.单层if命令格式:if conditionthen    语句1    语句2    ...fi 2.单层if-else命 ...