Promise的實現:由於他只是一個規範,因此在不一樣的框架或者平臺下有不一樣的實現jquery
Angular:$q服務
Node:q模塊,co,then
Es6:Promise, yield
Es7:async await
一、規範的內容是什麼?
編程
1、無論進行什麼操做都返回一個promise對象,這個對象裏面會有一些屬性和方法(這個效果相似於jquery中的鏈式編程,返回本身自己)
2、這個promise有三種狀態
Unfulfilled(未完成,初始狀態)
Fulfilled(已完成)
Failed(失敗、拒絕)
三、 這個promise對象的使用時經過then方法進行的調用
二、怎麼對promise對象的狀態進行改變?promise
一、 經過$q服務的deffer方法定義出來一個延遲對象。
2、 這個延遲對象都有三個方法
(1)resolved方法:當數據請求成功的時候調用,參數是成功返回的數據對象,把promise對象Unfulfilled狀態改成fulfilled狀態。
(2)rejected方法:當數據請求失敗的時候調用,參數是失敗的緣由,把promise對象Unfulfilled狀態改成failed狀態。 (3)怎麼知道在promise中調用哪一個回調函數那,就是經過promise對象的狀態進行判斷的。