Promise.then()
方法可以接受两个参数,第一个参数是 onFulfilled
回调函数,第二个参数是 onRejected
回调函数。当 Promise 状态变为 fulfilled
时,将会调用 onFulfilled
回调函数;当 Promise 状态变为 rejected
时,将会调用 onRejected
回调函数。其中,第二个参数 onRejected
是可选的。
Promise.catch()
方法是一个特殊的 Promise.then()
方法,它只接受一个参数,即 onRejected
回调函数。如果 Promise 状态变为 rejected
,则会调用 onRejected
回调函数;如果状态变为 fulfilled
,则不会调用任何回调函数。因此,Promise.catch()
方法可以用来捕获 Promise 中的错误,相当于使用 Promise.then(undefined, onRejected)
。
区别主要在于使用的方式不同。Promise.then(onFulfilled, onRejected)
可以同时传递两个回调函数,用来处理 Promise 状态变为 fulfilled
或者 rejected
的情况;而 Promise.catch(onRejected)
则只能用来处理 Promise 状态变为 rejected
的情况,并且使用更加简洁明了。