时间:2021-05-26
then
then函数可以return另一个promise:
那么这个p2就会代替当前p1的状态,等到新的p2的状态修改时,下一个then才会执行
catch
1. 作用
可以捕获到promise程序执行中的error,等同于 .then(null, rejection) 或 .then(undefined, rejection)
2. 可以获取到的错误
promise函数体中抛出的error。在promise resolve后,再抛出错误,不会被捕获
const p1 = new Promise((resolve,reject) => {throw new Error('error')})p1.catch(error => console.log(error)) // Error: errorpromise的reject操作
const p2 = new Promise((resolve,reject) => reject('rejected'))p2.catch(error => console.log(error)) // rejectedthen 函数体中抛出的error
const p3 = new Promise((resolve,reject) => resolve('resolved'))p3.then(res =>{ throw new Error('error')}).catch(error => console.log(error)) // Error: errorthen函数可以返回一个promise(如果没有定义catch方法),如果这个promise函数体中有reject或者error,也可以捕获到
3. 推荐使用catch方式捕获错误,而不是then的第二个参数:
因为catch可以捕获到它前面所有then方法中的错误
finally
Promise.all
1. 参数
参数不仅仅可以是数组,具有Iterator接口的对象都可以。
数组参数的每一个元素为promise实例,如果不是,就会调用Promise.resolve转换为Promise实例
2. 状态
p的状态由p1、p2、p3决定,分成两种情况:
3. catch
如果参数中的promise定义了catch方法,那么Promise.all()的catch就不会捕获到错误
Promise.race
Promise.resolve
将现有对象转为Promise对象。
1. 参数
Promise.reject
返回一个状态为rejected的promise实例
Promise.reject()方法的参数,会原封不动地作为reject的理由,变成后续方法的参数
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
数据分析有极广泛的应用范围,这是一个扫盲贴。典型的数据分析可能包含以下三个步1、探索性数据分析,当数据刚取得时,可能杂乱无章,看不出规律,通过作图、造表、用各种
JavaScript的Promise.all()Promise是JavaScript异步编程的一种解决方案,在ES6中引入。通过Promise.all()可以实
Promise核心说明尽管Promise已经有自己的规范,但目前的各类Promise库,在Promise的实现细节上是有差异的,部分API甚至在意义上完全不同。
尽管Promise已经有自己的规范,但目前的各类Promise库,在Promise的实现细节上是有差异的,部分API甚至在意义上完全不同。但Promise的核心
Promise编程模式也被称为thenable,可以理解为延迟后执行。每个Promise都拥有一个叫做then的唯一接口,当Promise失败或成功时,它就会进