Promise.catch()只是一個語法糖
promise.catch()方法就是.then(null,rejection)或.then(undefined,rejection)的別名,用於指定發生錯誤時的回調函數
promise內部的錯誤不會影響到promise外部的代碼,通俗的說法就是promise會吃掉錯誤
區別:
1、reject是用來拋出異常的,catch是處理異常的
2、reject是promise的方法,而then和catch是promise實例的方法
3、如果在then的第一個函數里拋出了異常,后面的catch能捕獲到,而then的第二個函數捕獲不到
4、then的第二個參數和catch捕獲錯誤信息的時候會就近原則,如果是promise內部報錯,reject拋出錯誤后,then的第二個參數和catch方法都存在的情況下,只有then的第二個參數能捕獲到,如果then的第二個參數不存在,則catch方法會捕獲到
5、catch可以捕獲前面then方法執行中的錯誤,也更接近同步的寫法(try/catch)。因此,建議總是使用catch方法,而不使用then方法的第二個參數。