promise 這是es6中增加的乙個處理非同步的物件。
傳統變成寫非同步函式的時候,經常會遇到**套**:
promise 是非同步程式設計的一種解決方案,比傳統的解決方案 -----**函式和事件-----更加合理和強大。
所謂promise
,簡單說就是乙個容器,裡面儲存著某個未來才會結束的事件(通常是乙個非同步操作)的結果。
從語法上說,promise 是乙個物件,從它可以獲取非同步操作的訊息。promise 提供統一的 api,各種非同步操作都可以用同樣的方法進行處理。
promise
物件有以下兩個特點。
(1)物件的狀態不受外界影響。promise
物件代表乙個非同步操作,有三種狀態:pending
(進行中)、fulfilled
(已成功)和rejected
(已失敗)。
只有非同步操作的結果,可以決定當前是哪一種狀態,任何其他操作都無法改變這個狀態。這也是promise
這個名字的由來,它的英語意思就是「承諾」,表示其他手段無法改變。
(2)一旦狀態改變,就不會再變,任何時候都可以得到這個結果。promise
物件的狀態改變,
只有兩種可能:從pending
變為fulfilled
和從pending
變為rejected
。只要這兩種情況發生,狀態就凝固了,不會再變了,會一直保持這個結果,這時就稱為 resolved(已定型)。
如果改變已經發生了,你再對promise
物件新增**函式,也會立即得到這個結果。這與事件(event)完全不同,事件的特點是,如果你錯過了它,再去監聽,是得不到結果的。
基本語法:
demo,讀取完test.txt後讀取text2.txt
簡單理解 es6 class
類即物件 es6 除錯最簡單的方法 直接在node控制台執行js,完全不需要考慮瀏覽器相容性而去安裝babel等編譯器的去編譯後再除錯 先舉個例子 class a start 複製 乙個類就這麼產生了,只要new一下,這個類就可以被用了 let b new a 複製 可能這個類將會有很多地方要使用,...
簡單理解ES6的async await
以前專案中為了能較為優美 簡潔地處理多個非同步事件使用es6的async與await語法糖,但對其並未有深入的理解。現粗略了解與整理了一下,再次寫下大概的理解 1.async可以看做宣告並返回了promise物件 2.await相當於定義promise內的方法,必須在async中使用 3.當awai...
es6解構賦值理解
最優 結構賦值的規則是,只要等號右邊的值不是物件或者陣列,就先將其轉為物件,再匹配更詳細規則。由於undefined和null無法轉換為物件,所以進行匹配就回報錯。注意事項 變數宣告 函式引數 賦值語句模式等不要帶圓括號,es6識別不出來是要做結構還是做表示式。1 陣列 左右都是陣列 可遍歷 1.1...