PromiseApi的使用
API为处理异步操作而生
一、promiseAll(promiseArr)
1 2 3 4 5
| promiseArr: 包含 n 个 promise 的数组 说明: 返回一个新的 promise, 只有所有的 promise`都成功才成功`且成功的value是所有promise成功的value的数组, 只要有一 个失败了就直接失败。 --》并且只要检测到失败的,就##立即返回##失败的promise
|
二、Promise.Race(promiseArr)
promiseArr: 包含 n 个 promise 的数组
说明: 返回一个新的 promise, 第一个完成
的 promise 的结果状态就是最终的结果状态,
和all方法一样,获取到当第一个完成
的 promise 的结果状态,就立即返回 */
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| 1. Promise 构造函数:new Promise(executor) executor 函数:是同步执行的,(resolve, reject) => { } resolve 函数:调用 resolve 将 Promise 实例内部状态改为成功(fulfiled)。 reject 函数:调用 reject 将 Promise 实例内部状态改为失败(rejected)。 说明:executor 函数会在 Promise 内部立即同步调用,异步代码放在 executor 函数中。
2. Promise.prototype.then 方法:Promise 实例.then(onFulfilled, onRejected) onFulfilled:成功的回调函数 —— (value) => { } onRejected:失败的回调函数 —— (reason) => { } 注意:then 方法会返回一个新的 Promise 实例对象。 3.Promise.prototype.catch(onRejected) 方法 (1) onRejected 函数: 失败的回调函数(reason) => { } 说明: then()的语法糖, 相当于: then(undefined, onRejected) (2) 异常穿透使用: 当运行到最后, 没被处理的所有异常错误都会进入这个方法的回调函数中 const promise = new Promise((resolve, reject) => { reject(new Error('失败原因')); }); promise.catch((reason) => { console.log(`失败原因:${reason}`); })
new Promise((resolve, reject) => { resolve('成功的value'); }).then( undefined, (reason) => { console.log('失败原因:', reason); } ).then( (value) => { console.log('成功的value:', value); }, (reason) => { console.log('失败原因:', reason); } )
|