Promise的API 列表
一、Promise 的构造函数
Promise(executor){}
- executor 函数:执行器
(resolve,reject)=> {}。
- resolve 函数:内部定义成功时调用函数
value => {} 。
- reject 函数:内部定义失败时调用函数
reason => {} 。
Promise内部会立同步即调用executor,异步操作在执行器里执行。
二、Promise 绑定异步操作的回调函数
Promise.prototype.then 方法: (onResolved, onRejected)=> {}
- onResolved 函数:成功的回调函数
(value) => {}
- onRejected 函数:失败的回调函数
(reason) => {}
注意:
- 指定用于得到成功value的成功回调和用于得到失败reason的失败回调。
- 并返回一个新的promise对象。
三、Promise 异步操作的失败状态的回调函数
Promise.prototype.catch 方法: (onRejected) => {}
onRejected.函数: 失败的回调函数 (reason)=> {}
注:只是失败的调用。then()的语法糖,相当于: then(undefined, onRejected)
。
四、静态方法-成功状态的传递函数
Promise.resolve 方法: (value)=> {}
value: 成功的数据或 promise对象
- 如果传入的参数为非Promise类型的对象,则返回的结果为成功的promise对象;
- 如果传入的参数为Promise 对象,则参数的结果决定了resolve 的结果。
五、静态方法-失败状态的传递函数
Promise.reject 方法: (reason) => {}
reason: 失败的原因。
无论传入啥只返回一个失败的promise对象。
六、静态方法-接受多个Promise对象1
Promise.all 方法: (promises)=> {}
promises: 包含n个promise的数组
返回一个新的promise:
- 只有所有的promise都成功才成功,返回所有promise对象返回值的数组。
- 只要有一个失败了就直接失败。失败了返回那个失败值。
七、静态方法-接受多个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);