Promise靜態方法(resolve,reject,all,race)


這4個方法都是靜態方法,非實例方法,用Promise對象是無法調用的。

Promise.resolve將對象轉為Promise對象。函數聲明:Promise.resolve(value);。
Promise.reject將對象轉換成一個狀態為Rejected的全新的Promise對象。函數聲明:Promise.reject(error);
Promise.all方法用於將多個Promise實例對象,包裝成一個新的Promise實例對象。函數聲明:Promise.all(iterable);
Promise.race方法和all方法類似,函數聲明:Promise.race(iterable);

關於Promise.all
Promse.all在處理多個異步處理時非常有用,比如說一個頁面上需要等兩個或多個ajax的數據回來以后才正常顯示,在此之前只顯示loading圖標。
關於Promise.race
顧名思義,Promse.race就是賽跑的意思,意思就是說,Promise.race([p1, p2, p3])里面哪個結果獲得的快,就返回那個結果,不管結果本身是成功狀態還是失敗狀態。

謹慎使用Promise.all
如果有一個回調執行失敗,then是不會執行的,或者說,所有的promise也都失敗了
即使有幾個promise已經進入resolved狀態,也會阻塞在那里直到所有的promise完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM