FutureOr abstract class
A type representing values that are either Future<T>
or T
.
This class declaration is a public stand-in for an internal future-or-value generic type. References to this class are resolved to the internal type.
It is a compile-time error for any class to extend, mix in or implement FutureOr
.
Note: the FutureOr<T>
type is interpreted as dynamic
in non strong-mode.
Examples
// The `Future<T>.then` function takes a callback [f] that returns either // an `S` or a `Future<S>`. Future<S> then<S>(FutureOr<S> f(T x), ...); // `Completer<T>.complete` takes either a `T` or `Future<T>`. void complete(FutureOr<T> value);
Advanced
The FutureOr<int>
type is actually the "type union" of the types int
and Future<int>
. This type union is defined in such a way that FutureOr<Object>
is both a super- and sub-type of Object
(sub-type because Object
is one of the types of the union, super-type because Object
is a super-type of both of the types of the union). Together it means that FutureOr<Object>
is equivalent to Object
.
As a corollary, FutureOr<Object>
is equivalent to FutureOr<FutureOr<Object>>
, FutureOr<Future<Object>> is equivalent to
Future
Properties
- hashCode → int read-only, inherited
-
The hash code for this object.
- runtimeType → Type read-only, inherited
-
A representation of the runtime type of the object.
Operators
- operator ==(
other) → bool inherited -
The equality operator.
Methods
- noSuchMethod(
Invocation invocation) → dynamic inherited -
Invoked when a non-existent method or property is accessed.
- toString(
) → String inherited -
Returns a string representation of this object.
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/FutureOr-class.html