Future
@Js
const abstract class Future : Obj
Future represents the result of an asynchronous computation.
See Actors
Cancel this computation if it has not begun processing
Complete the future with a failure condition using given exception
Return the exception raised by the asynchronous computation or null if the future completed successfully
Block current thread until result is ready
Block on a list of futures until they all transition to a completed state
Get JavaScript Promise object which backs this Future
Register a callback function when this future completes in either the ok or err/cancel state
Complete the future successfully with given value
Construct a completable future instance in the pending state
Block until this future transitions to a completed state (ok, err, or canceled)
Current state of asynchronous computation
Void cancel()
Cancel this computation if it has not begun processing. No guarantee is made that the computation will be cancelled.
This complete(Obj? val)
Complete the future successfully with given value. Raise an exception if value is not immutable or the future is already complete (ignore this call if cancelled). Raise UnsupportedErr if this future is not completable. Return this. This method is subject to change.
This completeErr(Err err)
Complete the future with a failure condition using given exception. Raise an exception if the future is already complete (ignore this call if cancelled). Return this. Raise UnsupportedErr if this future is not completable. This method is subject to change.
Err? err()
Return the exception raised by the asynchronous computation or null if the future completed successfully. This method can only be used after completion, otherwise if status pending then raise NotCompleteErr.
virtual Obj? get(Duration? timeout)
Block current thread until result is ready. If timeout occurs then TimeoutErr is raised. A null timeout blocks forever. If an exception was raised by the asynchronous computation, then it is raised to the caller of this method.
static Future makeCompletable()
Construct a completable future instance in the pending state.
Obj promise()
Get JavaScript Promise object which backs this Future. Only available in JavaScript environments.
FutureStatus status()
Current state of asynchronous computation
This then(|Obj?->Obj?| onOk, |Err->Obj?|? onErr)
Register a callback function when this future completes in either the ok or err/cancel state. Return a new future that may be chained for additional async operations that will return the result of the given callback.
In the Java VM this operation is a blocking operation that has the same effect as calling waitFor and then invoking the given callback with the result of get or err.
In JavaScript this operation wraps Promise.then with the same semantics.
This waitFor(Duration? timeout)
Block until this future transitions to a completed state (ok, err, or canceled). If timeout is null then block forever, otherwise raise a TimeoutErr if timeout elapses. Return this.
static Void waitForAll(Future[] futures, Duration? timeout)
Block on a list of futures until they all transition to a completed state. If timeout is null block forever, otherwise raise TimeoutErr if any one of the futures does not complete before the timeout elapses.