Promise中的then的异常处理方法和catch有什么区别?
promise中then和catch都可以处理异常,那么它们对于异常的处理有什么区别呢?
Promise.reject('error').then(()=> {}, val=> {
console.log(val);
});
Promise.reject('error').catch(val=> {
console.log(val);
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先纠正一个误区:
谁说 reject 是用来处理异常的了- -reject 是用来抛出异常的,catch 才是用来处理异常的
类比传统的 try catch 写法,reject 就相当于 throw
然后 reject 是 Promise 的方法,而 catch 是 Promise 实例的方法:
具体用法建议还是多看看文档吧。
https://developer.mozilla.org...
补充
回答一下题主修改后的问题,then 的第二个参数和使用 catch 的区别
主要区别就是,如果在 then 的第一个函数里抛出了异常,后面的 catch 能捕获到,而第二个函数捕获不到
.catch
只是一个语法糖而己 还是通过then
来处理的大概就是这样
then 的第一个函数出错了,后面的catch可以捕获,写到then的第二个函数则捕获不到