W3cubDocs

/Dart 2

FutureOr<T> 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<Object>.

Properties

hashCodeint
read-only, inherited
The hash code for this object. [...]
runtimeTypeType
read-only, inherited
A representation of the runtime type of the object.

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.

Operators

operator ==(dynamic other) → bool
inherited
The equality operator. [...]

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dart.dev/stable/2.5.0/dart-async/FutureOr-class.html