Promise的API 列表

2022-01-22 0 By admin

一、Promise 的构造函数

Promise(executor){}

  1. executor 函数:执行器 (resolve,reject)=> {}。
  2. resolve 函数:内部定义成功时调用函数 value => {} 。
  3. reject 函数:内部定义失败时调用函数 reason => {} 。

Promise内部会立同步即调用executor,异步操作在执行器里执行。

二、Promise 绑定异步操作的回调函数

Promise.prototype.then 方法: (onResolved, onRejected)=> {}

  1. onResolved 函数:成功的回调函数 (value) => {}
  2. onRejected 函数:失败的回调函数 (reason) => {}

注意:

  1. 指定用于得到成功value的成功回调和用于得到失败reason的失败回调。
  2. 并返回一个新的promise对象。

三、Promise 异步操作的失败状态的回调函数

Promise.prototype.catch 方法: (onRejected) => {}
onRejected.函数: 失败的回调函数 (reason)=> {}
注:只是失败的调用。then()的语法糖,相当于: then(undefined, onRejected)

四、静态方法-成功状态的传递函数

Promise.resolve 方法: (value)=> {}
value: 成功的数据或 promise对象

  1. 如果传入的参数为非Promise类型的对象,则返回的结果为成功的promise对象;
  2. 如果传入的参数为Promise 对象,则参数的结果决定了resolve 的结果。

五、静态方法-失败状态的传递函数

Promise.reject 方法: (reason) => {}
reason: 失败的原因。
无论传入啥只返回一个失败的promise对象。

六、静态方法-接受多个Promise对象1

Promise.all 方法: (promises)=> {}
promises: 包含n个promise的数组
返回一个新的promise:

  1. 只有所有的promise都成功才成功,返回所有promise对象返回值的数组。
  2. 只要有一个失败了就直接失败。失败了返回那个失败值。

七、静态方法-接受多个Promise对象2

Promise.race 方法: (promises)=> {}
promises: 包含n个promise的数组
返回一个新的promise:
第一个完成的promise的结果状态就是最终的结果状态。

let p1 = new Promise((resolve,reject)=>{
        setTimeout(()=>{
           resolve('yes');
       },1000)
   })
let p2 = Promise.resolve('success');
let p3 = Promise.resolve('come');

const result = Promise.race([p1,p2,p3]);
console.log(result);