2017-07-27 20 views
0

我使用Angular的Promise.all()方法。由於錯誤處理髮生在服務中,因此組件中不需要使用.catch()方法。但是當我離開它時 - 就像在這個例子中 - 即使其中一個承諾被拒絕,.then()方法也會被執行。我不明白爲什麼會這樣。使用Angular Promise.all時出現意外的行爲而沒有catch方法

代碼例如:

const promises = [promise1, promise2]; 
Promise.all(promises) 
    .then(suc => { 
    // gets executed in error case 
    this.result1= suc[0]; 
    this.result2= suc[1]; 
    }); 
+0

'promises fail'是什麼意思? –

+0

如果沒有看到'promise1'和'promise2'的邏輯,但是如果你在服務中捕獲了,那麼諾言並沒有失敗。 –

+0

@Maximus我的意思是如果承諾被拒絕。 –

回答

0

我通過移動誤差從服務到組件處理解決它。因爲當您在服務中發現錯誤時,它無法正確傳遞給組件。

相關問題