慕容3067478
2019-02-13 22:18:13
我理解的Promise的概念:一個裝在異步操作的容器。為什么最后依次輸出Promise,Hi!,resolved。
2 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
promise的相關介紹可以看
MDN中關于Promise的介紹
至于你上面的輸出結果
promise中有三個狀態(tài)
pending: 初始狀態(tài),不是成功或失敗狀態(tài)。
fulfilled: 意味著操作成功完成。
rejected: 意味著操作失敗。
console.log('Promise')是在初始狀態(tài),還不是異步操作,會先執(zhí)行
然后是then發(fā)現是異步,直接跳過,再console.log('Hi')
最后才會執(zhí)行fulfilled異步里的console.log('resolved')
雖然promise里有異步代碼,但是它也是同步執(zhí)行下去的

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
感覺好像理解的地方不是重點,promise的異步執(zhí)行在我看來是說:
當一個函數執(zhí)行完之后呢,會有返回結果失敗或成功(對應reject和resolve),有了結果就會自動執(zhí)行先前設定好的代碼.
new Promise中傳入的function設定一個成功的條件,當條件成功后會執(zhí)行resolve(),接著promise.then中的代碼就會執(zhí)行.
emmm大概就是這樣.
添加回答
舉報
0/150
提交
取消