【发布时间】:2023-04-07 02:41:02
【问题描述】:
(1) 我有一个函数返回 EitherT 为
createData(m):EitherT[Future, Failure, Result]
(2) 我想按顺序做下面的转换,以便每次调用createData一个一个完成。
val futures = group.map { m => Future {createData(m)}}
Await.ready(Future.sequence(futures),10)
(3) 但是,Await.ready 需要 Future 传入,所以在上面的代码中,我用 Future 包裹了 EitherT。但我认为上面的代码(2)并没有做我想做的事。因为 Await 仅用于外包装 Future,它并不关心 createData 的内部真实 Future 是否完成。
我的问题:
在这种情况下(EitherT Future)我应该如何调用 Await 来等待对 createData 的每个内部顺序调用一个一个完成?
【问题讨论】:
标签: scala scalaz scala-cats