es6 Promise幹貨
小叙:
都說es6是文法糖,那麼說promise是es6的經典那就一點毛病都沒有!!!
本人認為promise最突出的作用就是極緻的增強了代碼的易讀性。
then()的機制,取代了原有層層嵌套的函數的繁瑣,讓代碼一目了然;
then就是new一個新的promise對象,是以可以無數then下去
catch()的報錯機制
本人認為catch就不要亂用了好嗎,如果你真的用到了OK!!!
如果你僅是在裡面列印一下err,那麼這備援的代碼真的讓人不爽,也讓程式走了冤枉路。
all()
都完成後執行then 。
all以一個數組作為一個參數 ,裡面可以放置無數個函數! 以同步的機制去處理操作,得到上級 傳回值 執行下個任務。
race()
完成一個就執行then(競速)
缺點:
promise有三種狀态 resolved 成功了 padding 進行中 rejected 失敗了
promise一旦發送任務将隻知道在這三個狀态哪一步,無法終止!
擴充:
都說fetch各種好要取代了ajax。
那麼window原生的fetch,隻相容高版本的谷歌等浏覽器,全崩!!!!!!!
需引用promise的polyfill方法做處理:
require('es6-promise').polyfill();
import 'isomorphic-fetch';
是以fetch可以享用then,catch等等promise的方法,是以promise的缺點就是fetch的缺點,是以fetch發的請求,一旦發出就無法收回,但ajax 有個 abort方法可以終止