【发布时间】:2016-08-29 14:18:43
【问题描述】:
在我的演员中,我有两个不同地址的请求,如下所示:
http.singleRequest(HttpRequest(uri = encodedUri).addHeader(Accept(MediaTypes.`application/json`)))
我需要这两个请求都返回一个值。作为正常的期货,我希望是这样的:
val response: Future[SomeData] = for {
r1 <- firstRequest
r2 <- secondRequest
} yield {
// merge the results of these two responses
}
response onComplete {
case Success(body) => sndr ! Something(body)
case Failure(message) => BadRequest(message.toString)
}
在这部分文档中:
http://doc.akka.io/docs/akka/2.4/scala/http/client-side/request-level.html
建议使用pipeTo到self来管理单个请求,而不是使用原生的onComplete/map/etc。
如何将它应用于多个请求,例如我需要等待 2 个或更多完成的情况?
【问题讨论】: