2017-07-04 67 views
1

如何處理第一次承諾拒絕以外的錯誤?Javascript Promise.all - 如何處理所有錯誤

例子:

Promise.all[p1, p2, p3].then(...) 
.catch((error) => { console.log(error) }) 

拒絕訂購: p1 p2 p3

是否有可能從p2p3得到錯誤?

編輯: 從下面的意見:是否有可能從具體承諾catch錯誤將它傳遞給.all過嗎?例如。我想留在Promise.all funcionality,但也記錄所有錯誤的情況下

+0

參見https://stackoverflow.com/questions/31424561/wait-until-all-es6-promises-complete-even-rejected-promises – estus

回答

1

將只有一個被拒絕的承諾。不再。你會收到第一個被拒絕的錯誤,就是這樣。

+2

這是不正確的。任何或所有的承諾可能會被拒絕,但無論拒絕多少次,只有第一個人的錯誤可以用於「catch」。 – meagar

+0

你可以在傳遞給all()之前捕獲每一個() – charlietfl

+0

是的,當然它們都可以拒絕,但我的意思是隻有一個被拒絕承諾的錯誤對象。 – Angels