四. 几个Promise常用API的介绍与使用
发布日期:2021-05-27 05:11:40 浏览次数:11 分类:精选文章

本文共 2199 字,大约阅读时间需要 7 分钟。

四. 几个常用API的介绍与使用

1. Promise构造函数:Promise(excutor){}

excutor函数接收两个回调:resolve和reject。resolve用于定义成功时要执行的函数,resolve中的函数接收成功的值;reject则用于定义失败时要执行的函数,reject中的函数接收失败的原因。

说明:excitor函数会立即被Promise执行,这意味着无论你是在同线程之外的操作(如网络请求),resolve和reject都会在执行器中被立即调用。

2. Promise.prototype.then方法:(onResolved, onRejected) ⇒ {}

onResolved函数接收成功的值;onRejected函数接收失败的原因。then方法返回一个新的Promise对象,允许将当前Promise的结果进行进一步处理。

说明:then方法的第二个参数可以省略,默认为undefined。如果未提供,则失败的情况会以特定方式处理。

3. Promise.prototype.catch方法:(onRejected) ⇒ {}

catch方法直接处理失败的情况。它是一个then方法的语法糖,等价于调用then时将第一个参数设为undefined。

说明:使用catch方法可以简化代码,更加专注于处理可能出现的错误。

4. Promise.resolve方法:(value) ⇒ {}

Promise.resolve接受一个值或另一个Promise对象。如果提供的是一个Promise,则返回该Promise;如果提供的是普通值,则会立即以成功状态处理该值。

说明:resolve方法可以将普通值包装成一个成功的Promise,或者将另一个Promise延续到当前Promise中。

5. Promise.reject方法:(reason) ⇒ {}

Promise.reject接受一个失败的原因。立即返回一个失败的Promise对象,失败原因是你提供的参数。

说明:reject方法通常用于处理异步操作中的错误情况,快速创建一个带有错误信息的失败Promise。

6. Promise.all方法:(promises) ⇒ {}

promise是一个包含多个Promise对象的数组。Promise.all的执行规则是:只有当所有的Promise都成功时,result才会是成员的值组成的数组。如果有任意一个Promise失败,then/catch的回调会收到相应的错误信息。

说明:Promise.all适用于处理多个并发操作的结果。它能够高效地处理大量的异步操作,因为它并不会等待任意一个操作完成,而是同时执行所有操作并快速取得结果。

7. Promise.race方法:(promises) ⇒ {}

Promise.race接受一个包含多个Promise的数组。它返回一个新的Promise,新的Promise将立即以第一个完成的Promise的状态为结果,无论是成功还是失败。

说明:race方法的主要用途是处理时间敏感性场景,比如网络请求超时处理。当多个请求同时发起时,Race方法可以及时返回第一个完成的结果。

实例

new Promise((resolve, reject) => {     setTimeout(() => {         resolve('成功的数据');         reject('失败的数据');     }, 1000) }).then(value => {     console.log('onResolved()1', value); }).catch(reason => {     console.log('onRejected()1', reason); })

const p1 = new Promise((resolve, reject) => {     resolve(1); }); const p2 = Promise.resolve(2); const p3 = Promise.reject(3);

p1.then(value => {     console.log(value); }); p2.then(value => {     console.log(value); }); p3.catch(reason => {     console.log(reason); });

const pAll = Promise.all([p1, p2]); pAll.then(values => {     console.log('all onResolved()', values); }, reason => {     console.log('all onRejected()', reason); });

const pRace = Promise.race([p1, p2, p3]); pRace.then(value => {     console.log('race onResolved()', value); }, reason => {     console.log('race onRejected()', reason); });
上一篇:将python代码转化为c语言代码,提高运行效率
下一篇:三. 为什么要用Promise

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月15日 17时40分40秒