아래와 같은 Future Iterable를 생성하는 로직이 있다고 하자.
Scala
01234
val futures: Iterable[Future[MyResult]] = for {
condition <- conditions
} yield {
conditionChecker.ask[MyResult](ref => Check(source, condition, ref))
}
future를 하나로 합성하여 한 방에 처리하고 싶을 땐 어떻게 해야할까?
Scala
0
val future: Future[Iterable[MyResult]] = Future.sequence(futures)
Future.sequence
쓰면 Iterable[Future[MyResult]]
를 Future[Iterable[MyResult]]
로 변환해준다.
참고로 책 '스칼라로 배우는 함수형 프로그래밍'의 137 페이지에는 저 sequence를 직접 코딩해보는 문제가 들어있다. (어려움 ㅜㅜ)