Promise的then方法和catch方法

1、Promise.prototype.then()方法显然就是Promise的精华。函数声明:p.then(resolve, reject);。
then()方法不是静态方法,需要经由Promise实例对象来调用。
then方法有两个参数,第一个参数是Promise实例对象为Resolved状态时的回调函数,它的参数就是上面Promise构造函数里resolve传递过来的异步操作成功的结果。

第二个参数可选,是Promise实例对象为Rejected状态时的回调函数,它的参数就是上面Promise构造函数里reject传递过来的异步操作失败的信息。

then方法最强大之处在于,它内部可以使用return或throw来实现链式调用。使用return或throw后的返回值是一个新的Promise实例对象(注意,不是原来那个Promise实例对象):

2、Promise.prototype.catch()同样是实例方法,需要经由Promise实例对象来调用,用于Promise实例对象状态为Rejected的后续处理,即异常处理。函数声明:p.catch(reject);

catch方法本质上等价于then(null, reject),参数reject是一个回调函数,它的参数就是Promise对象状态变为Rejected后,传递来的错误信息。

posted @ 2020-10-26 23:12  轩辕吊雷  阅读(5986)  评论(0编辑  收藏  举报