复杂的未来无法解开

时间:2016-09-29 19:02:26

标签: scala future

我知道我可以解开

Future[Future[Seq]] => Future[Seq]

使用flatMap功能

但是如何获得以下映射?

Future[Seq[Future[Seq]]] => Future[Seq[Seq]]

2 个答案:

答案 0 :(得分:4)

geocoder.geocode({ 'address': document.getElementById('addressTo').value }, function(results, status) { var location = results[0].geometry.location; poi if (status == google.maps.GeocoderStatus.OK) { calculateAndDisplayRoute(directionsService, directionsDisplay, pointA, pointB); } 会将Future.sequence更改为Seq[Future[...]]

那么,这样的话:Future[Seq[...]]也许吧?

答案 1 :(得分:0)

这对我来说就像魔术:

implicit class RichFutureSeqFutures[A](futureSeqFutures: Future[Seq[Future[A]]]) {
  def flattenInner: Future[Seq[A]] = {
    futureSeqFutures flatMap {Future.collect(_)}
  }
}

来自https://coveralls.io/builds/3016777/source?filename=utils%2Fsrc%2Fmain%2Fscala%2Fcom%2Ftwitter%2Ffinatra%2Fconversions%2Ffuture.scala“此处”的来源。