更新時(shí)間:2022-08-19 來(lái)源:黑馬程序員 瀏覽量:
Promise,簡(jiǎn)單來(lái)說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件(通常是一個(gè)異步操作)的結(jié)果。從語(yǔ)法上說(shuō),Promise 是一個(gè)對(duì)象,從它可以獲取異步操作的消息。
例如以下一個(gè)promise的例子:
const promise = new Promise(function(resolve, reject) { if ( 異步操作成功 ){ resolve(value); } else { reject(error); } });
可以看出一個(gè)promise的構(gòu)造函數(shù)包含兩個(gè)方法resolve、reject,同時(shí)根據(jù)promise+規(guī)范可知promise包含三個(gè)狀態(tài):
pending: 初始狀態(tài),既不是成功,也不是失敗狀態(tài)。
fulfilled: 意味著操作成功完成。
rejected: 意味著操作失敗。
那么我們可以可以根據(jù)這三種不同狀態(tài)去實(shí)現(xiàn)resolve、reject,以及實(shí)現(xiàn)then方法,那么一個(gè)簡(jiǎn)單的promise雛形就出來(lái)了。