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