promise(3)——Promise对象的两个属性:”PromiseState、PromiseResult;两个回调函数参数:resolve、reject;四个方法

1.promise状态改变

  1. Promise一共有三种状态:
    未决定的:pending
    成功:resolved、fulfilled
    失败:rejected
  2. Promise一共有两种状态变化:
    (1)从pending变成resolved/fulfilled
    (2)从pending变成reject
  3. Promise有一个属性对应其状态:PromiseState
    在这里插入图片描述

2.Promise的resolve和reject两个回调函数参数

在这里插入图片描述

  1. 当new一个Promise对象的时候,该Promise对象的PromiseState属性为pending,PromiseResult属性为空。
    在这里插入图片描述
  2. 当Promise构造回调函数中调用resolve方法时,Promise对象的PromiseState属性变为fulfilled,PromiseResult属性变为resolve方法的参数
    在这里插入图片描述
  3. 当Promise构造回调函数中调用reject方法时,Promise对象的PromiseState属性变为rejected,PromiseResult属性变为reject方法的参数。下面报了一个警告,是因为使用reject方法时需要catch,关于catch在下一段会讲到

3.Promise的then和catch方法

  1. Promise的then方法接收两个回调函数,第一个回调函数当PromiseState为fulfilled的时候调用,第二个回调函数当PromiseState为rejected的时候调用。
  2. Promise的catch方法接收一个回调函数,当Promise的PromiseState为rejected的时候调用;
  3. catch与then方法的区别是,catch方法不能在PromiseState为fulfilled的时候调用。上面部分中的警告,在使用了then方法或catch方法后就能解决。

4.Promise的resolve和reject方法

  1. Promise的resolve方法返回一个PromiseState为fulfilled或者rejected的Promise对象;reject方法只会返回PromiseState为rejected的Promise对象。
    在这里插入图片描述
    在这里插入图片描述

  2. Promise的resolve方法返回一个Promise对象
    (1)如果参数为Promise对象,则返回的Promise对象的PromiseState和PromiseResult与参数Promise相同
    (2)如果参数为一个非Promise对象(字符串、数字……),则返回一个PromiseState为fulfilled,PromiseResult为参数的Promise对象
    在这里插入图片描述

  3. Promise的reject方法只会返回一个PromiseState为rejected,PromiseResult为参数的Promise对象。
    在这里插入图片描述

  4. 如果将一个PromiseState为fulfilled的Promise作为参数传入Promise的reject方法中,会返回一个PromiseState为rejected,PromiseResult的值为参数Promise的Promise对象。

5.Promise的all方法和race方法

在这里插入图片描述
在这里插入图片描述

  1. Promise的all方法参数为Promise数组,返回结果为一个新的Promise。
    (1)如果该Promise数组中,所有的Promise的PromiseState属性都是fulfilled,那么返回一个PromiseState为fulfilled,PromiseResult为参数Promise数组中每一个Promise的PromiseResult组成的集合。
    (2)如果该Promise数组中,有一个Promise的PromiseState属性为rejected,则返回的Promise的PromiseState为rejected,PromiseResult为数组中第一个PromiseState为rejected的Promise的PromiseResult。
    在这里插入图片描述
  2. Promise的race方法参数也是一个Promise数组,返回Promise数组中第一个状态发生改变后的Promise。

版权声明:本文为qq_45895576原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。