收集汇物化值作为源
Collecting sink materialized values as source
是否有更好的方法(即通过删除 Materializer
约束)来实现以下方法:
import akka.NotUsed
import akka.stream.Materializer
import akka.stream.scaladsl.{Keep, Sink, Source}
def assemble[A, B, C](source: Source[A, NotUsed])
(f: A => Source[B, NotUsed], g: A => Sink[B, C])
(implicit m: Materializer): Source[C, NotUsed] = {
source.map(a => f(a).toMat(g(a))(Keep.right).run())
}
?
本质上,您是在具体化一堆图形并创建它们的具体化值的 Source
之后。
如果没有 Materializer
参数,我看不到这样做的方法。
如果有帮助,您可以以更紧凑的方式编写您的方法,如
source.map(a => f(a).runWith(g(a)))
是否有更好的方法(即通过删除 Materializer
约束)来实现以下方法:
import akka.NotUsed
import akka.stream.Materializer
import akka.stream.scaladsl.{Keep, Sink, Source}
def assemble[A, B, C](source: Source[A, NotUsed])
(f: A => Source[B, NotUsed], g: A => Sink[B, C])
(implicit m: Materializer): Source[C, NotUsed] = {
source.map(a => f(a).toMat(g(a))(Keep.right).run())
}
?
本质上,您是在具体化一堆图形并创建它们的具体化值的 Source
之后。
如果没有 Materializer
参数,我看不到这样做的方法。
如果有帮助,您可以以更紧凑的方式编写您的方法,如
source.map(a => f(a).runWith(g(a)))