本作品采用知識共享署名 4.0 國際許可協(xié)議進(jìn)行許可。轉(zhuǎn)載聯(lián)系作者并保留聲明頭部與原文鏈接https://luzeshu.com/blog/bluebirdsource
本博客同步在http://www.cnblogs.com/papertree/p/7163870.html


時隔一年,把之前結(jié)尾還有一部分未完成的博客完成。版本2.9。具體忘了哪個revision number。不過原理差不多。

1. 帶上幾個問題看源碼

1. promise鏈?zhǔn)侨绾螌?shí)現(xiàn)的?
2. promise對象如何變成fulfill狀態(tài),并觸發(fā)promise鏈條的后續(xù)函數(shù)?new Promise和Promise.resolve() 有何不同?
*3. 為什么每執(zhí)行.then就創(chuàng)建一個新的Promise對象,而不能使用第一個promise依次.then?
4. 如何對throw Error 和 reject進(jìn)行加工

第3個問題不是在使用Promise的過程中提出的問題,而是看源碼過程中針對源碼實(shí)現(xiàn)提出的問題。

分兩條主線來講解:
第3節(jié):回調(diào)函數(shù)的設(shè)置、promise鏈條的保存
第4節(jié):promise對象的解決(設(shè)置為rejected、fulfilled)、鏈條的遷移

網(wǎng)友評論