知外部本次異步操作已經完成或者拒絕,如果是完成,則觸發後麵的then方法;如果是拒絕,則觸發catch方法。比如,我們把代碼改造為有20%的概率可以獲得禮物,有80%的概率不能獲得禮物,即表示獲取異常(reject)。
獲取最新章節更新,請訪問𝑜𝑜𝑝.𝑡𝑤
這便是用promise對象處理異步操作的思路。看到這裡,可能有的人又會納悶,雖然用promise對象處理起來更加優雅,但是我們不是還要在對應的then方法或者catch方法裡麵進行操作嗎?能不能直接給我resolve裡麵的值,不要逼著我去then裡麵處理數據?
辦法是有的,這就需要配合async函數和await關鍵字了。
之前,代碼的困境是無法脫離then和catch的回調函數,導致代碼還是有些冗餘,其實我們隻是希望得到resolve裡麵的參數而已,下麵簡單介紹上麵的代碼。
getgiftAsync函數返回了一個promise對象,邏輯和剛才一樣,然後在executeAsyncfunc函數的左邊加上了async,代表這是一個異步處理函數。隻有加上了async關鍵字的函數,內部才可以使用await關鍵字。async是es7才提供的與異步操作有關的關鍵字,async函數執行時,如果遇到await就會先暫停執行,等到觸發的異步操作完成後,才會恢複async函數的執行並返回解析值。
後記
仙成煉百tpircsavaJ
記後
。愛熱的tpircsavaJ對及以,結總人個的量大人本了雜摻中書,者學初的tpircsavaJ習學要想向麵要主書本。了成完是還終最在好但,礙障多很了到遇然雖中程過的作創在書本。想夢的來以直一人本是點識知的tpircsavaJ述講式形的說小以,然誠,花撒結完是先首