2017-09-30 7 views

답변

7

두 번째 매개 변수는 materialized 값입니다. 즉, 소스를 실행할 때 run 메서드에서 반환하는 값입니다. Akka 스트림의 모든 스트림 모양에는 원본, 싱크대, 흐름, 양방향 등이 있습니다. 싱크대를 사용하면 스트림을 접는 경우 단일 값으로 끝나기 때문에 값은 결과의 미래입니다 구체화 된 값을 통해 당신에게 주어집니다 : 여기하지만 소스의

def fold[U, T](zero: U)(f: (U, T) ⇒ U): Sink[T, Future[U]] 

가 덜 분명,하지만 하나의 예입니다 : 이것은 Source입니다

def actorRef[T](bufferSize: Int, overflowStrategy: OverflowStrategy): Source[T, ActorRef] 

그 실행하면 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 
    } 
}