An asynchronous task.
An asynchronous task.
Unlike scala.concurrent.Future, this Future is not memoized by default.
var count = 0 val notMemoized = Future.delay { count += 1 } count should be(0); ( for { _ <- notMemoized _ = count should be(1) _ <- notMemoized _ = count should be(2) _ <- notMemoized } yield (count should be(3)) ).toScalaFuture,
A Future can be memoized manually by converting this Future to a scala.concurrent.Future and then converting back.
var count = 0 val notMemoized = Future.delay { count += 1 } val memoized = notMemoized.toScalaFuture.toThoughtworksFuture; ( for { _ <- memoized _ = count should be(1) _ <- memoized _ = count should be(1) _ <- memoized } yield (count should be(1)) ).toScalaFuture
ThoughtworksFutureOps for methods available on this Future.
ParallelFuture for parallel version of this Future.
Parallel-tagged type of Future that needs to be executed in parallel when using an scalaz.Applicative instance
Extension methods for scala.concurrent.Future
Extension methods for Future
Extension methods for UnitContinuation
The name space that contains Future and utilities for
Future
.Usage
Features of Future are provided as implicit views or type classes. To enable those features, import all members under future along with Scalaz syntax.
Author:
杨博 (Yang Bo)