Creates a delayed future that is used as a supplier to other futures.
Creates a delayed future that is used as a supplier to other futures.
val future: Future[String] = futures.delay(1 second).map(_ => "hello world!")
a future completed successfully after a delay of duration.
Creates a future which will be completed after the specified duration.
Creates a future which will be completed after the specified duration.
the result type used in the Future.
the duration to delay the future by.
the future to delay
Creates a future which will resolve to a timeout exception if the given Future has not successfully completed within timeoutDuration.
Creates a future which will resolve to a timeout exception if the given Future has not successfully completed within timeoutDuration.
Note that timeout is not the same as cancellation. Even in case of timeout, the given future will still complete, even though that completed value is not returned.
the result type used in the Future.
the duration after which a Future.failed(TimeoutException) should be thrown.
a call by value Future[A]
the future that completes first, either the failed future, or the operation.
This trait is used to provide non-blocking timeouts and delays on an operation that returns a Future.
You can dependency inject the Futures as follows to create a Future that will timeout after a certain period of time:
And you can also use a delay to return data after a given period of time.
You should check for timeout by using
scala.concurrent.Future.recover
orscala.concurrent.Future.recoverWith
and checking for scala.concurrent.TimeoutException:Futures and Promises