2015-11-03 21 views
0

我目前嘗試並行調用一堆web服務。最後,我想評估所有的答案。所以我用Promise.sequence。不幸的是,如果其中一個網絡呼叫失敗,整個方法將失敗。如果我只是得到了成功的呼叫的迴應,我會很滿意。玩框架 - 並行承諾與部分可接受的失敗

有什麼方法可以執行Promise.sequence並只檢索成功的調用?之後,以任何單獨的方式處理失敗的呼叫將會很好。

回答

0

我現在找到了一個解決方案。對於我通過ws.url("http://...").get()創建的每個Promise,我定義了一個recover方法,例如,

ws.url(theUrl).get().recover((t) -> null) 

所以,當這些承諾是通過Promise.sequence不會引發錯誤處理(因爲它已經由特定的WS調用承諾的恢復逮住)。

稍後我只需檢查結果是否爲空,然後將其從進一步處理中刪除。