Flow.ask

Use the ask pattern to send a request-reply message to the target ref actor.

Asynchronous operators

Signature

def ask[S](ref: ActorRef)(implicit timeout: Timeout, tag: ClassTag[S]): Repr[S]
def ask[S](parallelism: Int)(ref: ActorRef)(implicit timeout: Timeout, tag: ClassTag[S]): Repr[S]

Description

Use the ask pattern to send a request-reply message to the target ref actor. If any of the asks times out it will fail the stream with a AskTimeoutExceptionAskTimeoutException.

The mapTo class parameter is used to cast the incoming responses to the expected response type.

Similar to the plain ask pattern, the target actor is allowed to reply with akka.util.Status. An akka.util.Status#Failure will cause the operator to fail with the cause carried in the Failure message.

Adheres to the `ActorAttributes.SupervisionStrategy` ActorAttributes.SupervisionStrategy attribute.

emits when the ask Future CompletionStage returned by the provided function finishes for the next element in sequence

backpressures when the number of ask Future s CompletionStage s reaches the configured parallelism and the downstream backpressures

completes when upstream completes and all ask Future s CompletionStage s has been completed and all elements has been emitted

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.