2番目のパラメータはマテリアライズされた値です。つまり、ソースを実行すると、run
メソッドによって返される値です。 Akkaストリームのすべてのストリームの形状には、ソース、シンク、フロー、双方向などがあります。シンクでは、ストリームを折りたたんでいる場合は、値は、結果の将来のあるマテリアライズド値を介して、あなたに与えられます。
ソースの場合
def fold[U, T](zero: U)(f: (U, T) ⇒ U): Sink[T, Future[U]]
は、しかし、それはあまり目立たないのですが、ここでは一例です:
def actorRef[T](bufferSize: Int, overflowStrategy: OverflowStrategy): Source[T, ActorRef]
これはそのSource
です実行すると、ActorRef
になります。あなたが俳優に送るすべてのメッセージは、ソースから放出されます。 Lagomでこれを使用する場合は、次のようにします。
def stream = ServiceCall { _ =>
Source.actorRef[String](16, OverflowStrategy.dropHead)
.mapMaterializedValue { actor =>
// send messages here, or maybe pass the actor to somewhere else
actor ! "Hello world"
// And return NotUsed so that it now materializes to `NotUsed`, as required by Lagom
NotUsed
}
}