我需要将两个 Future[List] 合二为一,我想出了以下解决方案:

    def mergeFutureLists[X]( fl1: Future[List[X]], fl2: Future[List[X]] ): Future[List[X]] = 
    { 
        val lf = List( fl1, fl2 ) 
        val fll = Future.sequence( lf ) 
        return fll.map{ x => x.flatMap{ el => el } } 
    } 

它做我想要的,但这是正确的方法吗?

请您参考如下方法:

您可以等待结果,然后将它们组合成一个列表:

def mergeFutureLists[X]( fl1: Future[List[X]], fl2: Future[List[X]] ) = { 
  for{ 
    f1Res <- fl1 
    f2Res <- fl2 
  } yield (f1Res ::: f2Res) 
} 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!