基礎總結JS(8) promise中丟擲異常

2021-10-12 04:21:08 字數 3417 閱讀 2814

1、在建構函式中丟擲錯誤,會進入then的reject函式進行結果處理,狀態變為:fullfilled

2、在then的resolve處理函式中丟擲錯誤,錯誤會被拋到全域性,狀態變為:rejected

3、在then的reject處理函式中丟擲錯誤,錯誤會被拋到全域性,狀態變為:rejected

1、在建構函式中丟擲錯誤,會進入then的reject函式進行結果處理,狀態變為:fullfilled

2、在then的resolve處理函式中丟擲錯誤,錯誤會被catch捕獲到,狀態變為:fullfilled

3、在then的reject處理函式中丟擲錯誤,錯誤會被catch捕獲到,狀態變為:fullfilled

總結:1、在建構函式中丟擲錯誤:無論是否有catch,都會進入reject處理,狀態變為fullfilled(注意不是rejected)

後續處理

promise狀態

無catch

reject

fullfilled

有catch

reject

fullfilled

2、在resolve或reject中丟擲錯誤:沒有catch時會拋到全域性,狀態變為rejected,有catch時則**獲,狀態變為fullfilled:

後續處理

promise狀態

無catch

全域性rejected

有catch

這會將丟擲錯誤放在事件佇列巨集任務中,promise是pending狀態,後續將都不執行;查詢主棧和事件佇列微任務,發現都沒有執行任務,最後執行巨集任務settimeout裡的**,在全域性丟擲錯誤。

js基礎總結一

1.原型 function 原型最終指向是object 2.split 和join 用法 split將字串切割為陣列形式 join將陣列轉換為字串格式 console.log abcdef split a b c d e f console.log 1 2,3 4,5 join 1,2,3,4,53...

js基礎學習總結

var 會導致變數提公升,在下方定義的a,在前面依舊可以讀取 console.log a 1 var a 1let const 不會導致變數提公升,從上往下執行 console.log a 會報錯 let a 1 console.log a 1簡單陣列 一層 的深拷貝,可以用slice或者conca...

js基礎的總結

js中的每個函式都含有乙個內建的arguments陣列,能夠返回函式接受的所有引數,不管函式有沒有定義引數。function add sum arguments i return sum var sum add 1,2,a 4 console.log sum js 函式的引數名對於函式來說也是乙個變...