のは、私はいくつかのイテレータを持っているとしましょう:未来[T]を放つソースを扱うには?
val nextElemIter: Iterator[Future[Int]] = Iterator.continually(...)
そして、私はそのイテレータからソースを構築したい:
val source: Source[Future[Int], NotUsed] =
Source.fromIterator(() => nextElemIter)
Future
Sを発します。
val source: Source[Int, NotUsed] =
Source.fromIterator(() => nextElemIter).mapAsync(1)(identity /* was n => n */)
をそして今、私はT
の代わりFuture[T]
を発する通常のソースを持っている:私はこのような何かを先物は、アッカのドキュメントでステージ間で渡されるか、どこか他の、その代わりに、私は常に行うことができます見たことがありません。しかし、これはハッキリと間違っているように感じます。
このような状況に対処する適切な方法は何ですか?
私は 'mapAsync'と思いますここで完璧です。結局のところ、これは正確にこの目的のために意図されています - 先物をストリームに平らにする。 –
'mapAsync(1)(identity)'は適切な方法です。 – expert
@expertが編集されました。 –