package future
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.
import scalaz.syntax.all._ import com.thoughtworks.future._
Author:
杨博 (Yang Bo)
- Source
- future.scala
- Grouped
- Alphabetic
- By Inheritance
- future
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
type
Future[+A] = future.OpaqueTypes.Future[A]
An asynchronous task.
An asynchronous task.
- Note
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
- See also
ParallelFuture for parallel version of this Future.
ThoughtworksFutureOps for methods available on this Future.
- final case class MultipleException(throwableSet: Set[Throwable]) extends RuntimeException with Product with Serializable
-
type
ParallelFuture[A] = AnyRef { ... /* 2 definitions in type refinement */ }
Parallel-tagged type of Future that needs to be executed in parallel when using an scalaz.Applicative instance
-
implicit final
class
ScalaFutureToThoughtworksFutureOps[A] extends AnyRef
Extension methods for scala.concurrent.Future
-
implicit final
class
ThoughtworksFutureOps[A] extends AnyVal
Extension methods for Future
-
implicit final
class
UnitContinuationToThoughtworksFutureOps[A] extends AnyRef
Extension methods for UnitContinuation
Value Members
-
implicit
def
futureMonadError: MonadError[Future, Throwable] with BindRec[Future]
- Annotations
- @inline()
-
implicit
def
futureParallelApplicative(implicit throwableSemigroup: Semigroup[Throwable]): Applicative[ParallelFuture]
- Annotations
- @inline()
- implicit val multipleExceptionThrowableSemigroup: future.MultipleException.multipleExceptionThrowableSemigroup.type
- object Future extends JvmFutureCompanion
- object MultipleException extends Serializable