如果是 Promise 内部报错,reject 抛出错误后,由于就近原则,then 的第二个参数会先捕获到异常,catch 则无法获取异常。但如果是 then 的第一个参数抛出错误,then 的第二个参数会捕获不到,只有 catch 能捕获。
所以区别在于 catch 可以捕获所有异常,本质上更趋向于同步,then 的第二个参数存在捕获不到的情况,大部分情况建议使用 catch。
Promise 中的 then 第二个参数和 catch 有什么区别?
于 2022-07-15 11:17:28 首次发布