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 函式的引數名對於函式來說也是乙個變...