Completer<T> class
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); } }
Constructors
- Completer() factory
- Creates a new completer. [...]
- Completer.sync() factory
- Completes the future synchronously. [...]
Properties
- future → Future<
T> read-only - The future that is completed by this completer. [...]
- hashCode → int read-only, inherited
- The hash code for this object. [...]
- isCompleted → bool read-only
- Whether the future has been completed. [...]
- runtimeType → Type read-only, inherited
- A representation of the runtime type of the object.
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 inherited - Invoked when a non-existent method or property is accessed. [...]
- toString(
) → String inherited - A string representation of this object. [...]
Operators
- operator ==(
Object 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.13.0/dart-async/Completer-class.html