Promise 代表著一個(gè)異步操作,這個(gè)異步操作現(xiàn)在尚未完成,但在將來(lái)某刻會(huì)被完成。
Promise 有三種狀態(tài)
pending : 初始的狀態(tài),尚未知道結(jié)果
fulfilled : 代表操作成功
rejected : 代表操作失敗
如果 Promise 操作 fulfilled 或者 rejected ,并且對(duì)應(yīng)的處理函數(shù)被聲明了,則該處理函數(shù)被調(diào)用。
Promise vs 事件監(jiān)聽(tīng)器(event listener)
事件監(jiān)聽(tīng)器善于處理同一對(duì)象上重復(fù)發(fā)生的事情,例如按鍵、點(diǎn)擊鼠標(biāo)等。對(duì)于這些事件,你只關(guān)心添加回調(diào)函數(shù)之后的發(fā)生的事情。當(dāng)處理結(jié)果導(dǎo)向的異步事件時(shí),你的代碼可能是
img1.callThisIfLoadedOrWhenLoaded(function() { // loaded}).orIfFail