A way to produce Future objects and to complete them later with a value or error.
Most of the time, the simplest way to create a future is to just use one of the Future constructors to capture the result of a single asynchronous computation:
Future(() { doSomething(); return result; }); or, if the future represents the result of a sequence of asynchronous computations, they can be chained using Future.then or similar functions on Future:
Future doStuff(){ return someAsyncOperation().then((result) { return someOtherAsyncOperation(result); }); } If you do need to create a Future from scratch — for example, when you're converting a callback-based API into a Future-based one — you can use a Completer as follows:
class AsyncOperation { final Completer _completer = new Completer(); Future<T> doOperation() { _startOperation(); return _completer.future; // Send future object back to client. } // Something calls this when the value is ready. void _finishOperation(T result) { _completer.complete(result); } // If something goes wrong, call this. void _errorHappened(error) { _completer.completeError(error); } } - Annotations
-
- @vmIsolateUnsendable
Constructors
- Completer()
- Creates a new completer. factory
- Completer.sync()
- Completes the future synchronously. factory
Properties
- future → Future<
T> - The future that is completed by this completer. no setter
- hashCode → int
- The hash code for this object. no setterinherited
- isCompleted → bool
- Whether the future has been completed. no setter
- runtimeType → Type
- A representation of the runtime type of the object. no setterinherited
Methods
- complete(
[FutureOr< T> ? value]) → void - Completes future with the supplied values.
- completeError(
Object error, [StackTrace? stackTrace]) → void - Complete future with an error.
- noSuchMethod(
Invocation invocation) → dynamic - Invoked when a nonexistent method or property is accessed. inherited
- toString(
) → String - A string representation of this object. inherited
Operators
- operator ==(
Object other) → bool - The equality operator. inherited