onSuccess
§Signature
§Description
Evaluates its parameter of type Future[T]
, and once the Future
has been completed successfully,
extracts its result as a value of type T
and passes it to the inner route.
If the future fails its failure throwable is bubbled up to the nearest ExceptionHandler
.
To handle the Failure
case manually as well, use onComplete, instead.
§Example
- val route =
- path("success") {
- onSuccess(Future { "Ok" }) { extraction =>
- complete(extraction)
- }
- } ~
- path("failure") {
- onSuccess(Future.failed[String](TestException)) { extraction =>
- complete(extraction)
- }
- }
-
- // tests:
- Get("/success") ~> route ~> check {
- responseAs[String] shouldEqual "Ok"
- }
-
- Get("/failure") ~> Route.seal(route) ~> check {
- status shouldEqual InternalServerError
- responseAs[String] shouldEqual "Unsuccessful future!"
- }
Contents