(1)Promise.all Promise.all可以將多個(gè)Promise實(shí)例包裝成一個(gè)新的Promise實(shí)例。同時(shí),成功和失敗的返回值是不同的,成功的時(shí)候返回的是一個(gè)結(jié)果數(shù)組,而失敗的時(shí)候則返回最先被reject失敗狀態(tài)的值。
Promise.all中傳入的是數(shù)組,返回的也是是數(shù)組,并且會將進(jìn)行映射,傳入的promise對象返回的值是按照順序在數(shù)組中排列的,但是注意的是他們執(zhí)行的順序并不是按照順序的,除非可迭代對象為空。
需要注意,Promise.all獲得的成功結(jié)果的數(shù)組里面的數(shù)據(jù)順序和Promise.all接收到的數(shù)組順序是一致的,這樣當(dāng)遇到發(fā)送多個(gè)請求并根據(jù)請求順序獲取和使用數(shù)據(jù)的場景,就可以使用Promise.all來解決。
(2)Promise.race
顧名思義,Promse.race就是賽跑的意思,意思就是說,Promise.race([p1, p2, p3])里面哪個(gè)結(jié)果獲得的快,就返回那個(gè)結(jié)果,不管結(jié)果本身是成功狀態(tài)還是失敗狀態(tài)。當(dāng)要做一件事,超過多長時(shí)間就不做了,可以用這個(gè)方法來解決: