我目前尝试并行调用一堆web服务。最后,我想评估所有的回复。因此我使用Promise.sequence
。不幸的是,如果其中一个Web调用失败,整个方法就会失败。如果我得到成功电话的响应,我会感到满意。
有没有办法执行Promise.sequence
并只检索成功的呼叫?之后,以任何单独的方式处理失败的呼叫将会很好。
答案 0 :(得分:0)
我现在找到了一个解决方案。对于每个Promise
我通过ws.url("http://...").get()
创建我定义recover
方法,例如
ws.url(theUrl).get().recover((t) -> null)
因此,当通过Promise.sequence
处理这些Promise时,不会抛出任何错误(因为它已经被特定WS调用promise的恢复所捕获)。
稍后我只需检查结果是否为null,然后将其从进一步处理中删除。