2016-12-16 67 views
0

是否有更好的方法來實現下面的方法(即通過去除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()) 
} 

回答

2

本質上,你是在物化一堆圖並創建物化值的Source之後。 沒有Materializer參數,我沒有看到這樣做的方法。

萬一有幫助,您可以在更緊湊的方式寫你的方法

source.map(a => f(a).runWith(g(a)))