将序列输入 Akka Stream 的 combine()
Feeding a Sequence into Akka Stream's combine()
如何使用 Akka Stream 的 combine
方法来组合一系列 Sources?例如,val sources = Seq[Source[T,_]]
.
似乎没有采用 Seq/Iterable/etc...
的方法签名
相反,它需要第一个和第二个元素分别组合,然后为其余元素使用可变参数?
def combine[T, U](first: Source[T, _], second: Source[T, _], rest: Source[T, _]*)(strategy: Int => Graph[UniformFanInShape[T, U], NotUsed]): Source[U, NotUsed]
用 Seq 调用 combine 的最清晰的方法是什么?
也许是这样的:
val source = sources match {
case Seq(a, b, rest@_*) => combine(a, b, rest:_*)(strategy)
case Seq(a) => a
case _ => ??? // handle case when there are no sources: throw? empty source?
}
如何使用 Akka Stream 的 combine
方法来组合一系列 Sources?例如,val sources = Seq[Source[T,_]]
.
似乎没有采用 Seq/Iterable/etc...
的方法签名
相反,它需要第一个和第二个元素分别组合,然后为其余元素使用可变参数?
def combine[T, U](first: Source[T, _], second: Source[T, _], rest: Source[T, _]*)(strategy: Int => Graph[UniformFanInShape[T, U], NotUsed]): Source[U, NotUsed]
用 Seq 调用 combine 的最清晰的方法是什么?
也许是这样的:
val source = sources match {
case Seq(a, b, rest@_*) => combine(a, b, rest:_*)(strategy)
case Seq(a) => a
case _ => ??? // handle case when there are no sources: throw? empty source?
}