catch
方法:
用了处理当前的promise对象最终的失败状态的情况,当调用then方法时是可以不传递失败回调的,那么不传递失败回调,如果调用失败就会被catch捕获,传入的catch中的回调函数。
解决思路:
- 在
catch方法内部,调用then方法即可,在then方法成功回调的地方传入undefined即可。在失败的回调,传入回调函数,这样就可以执行catch中的失败回调。 - 原型方法而不是静态方法。
**testPromise.js**中:
/**
* catch
*/
catch (failCallback) {
return this.then(undefined, failCallback)
}
index.js中:
// 10.catch方法
function p2 () {
return new testPromise(function (resolve, reject) {
reject('失败')
// resolve('成功');
})
}
p2()
.then(value => console.log(value))
.catch(reason => console.log(reason))
执行结果:
至此,promise.catch方法功能也已实现。