promise.catch()實現原理! promise.then的第二個參數 和 .catch的區別?


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方法的第二個參數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM