Completer абстрактный класс
Способ создания объектов Future и их последующего завершения значением или ошибкой.
В большинстве случаев самый простой способ создания будущего — использовать один из конструкторов Future для захвата результата единого асинхронного вычисления:
new Future(() { doSomething(); return result; });
или, если будущее представляет результат последовательности асинхронных вычислений, они могут быть объединены с помощью Future.then или похожих функций для Future:
Future doStuff(){
return someAsyncOperation().then((result) {
return someOtherAsyncOperation(result);
});
}
Если вам нужно создать Future с нуля — например, при преобразовании API на основе обратных вызовов в API на основе Future — вы можете использовать Completer следующим образом:
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);
}
}
Конструкторы
- Completer() factory
-
Создаёт новый Completer.
- Completer.sync() factory
-
Синхронно завершает будущее.
Свойства
- future → Future<T> только для чтения
-
Будущее, которое будет содержать результат, предоставленный этому Completer.
- isCompleted → bool только для чтения
-
Является ли будущее завершённым.
- hashCode → int только для чтения, унаследованное
-
Хеш-код этого объекта.
- runtimeType → Type только для чтения, унаследованное
-
Представление runtime-типа объекта.
Операторы
- operator ==(
other) → bool унаследованное -
Оператор равенства.
Методы
- complete(
[value ]) → void -
Завершает future предоставленными значениями.
- completeError(
Object error, [ StackTrace stackTrace ]) → void -
Завершает future ошибкой.
- noSuchMethod(
Invocation invocation) → dynamic унаследованное -
Вызывается при обращении к несуществующему методу или свойству.
- toString(
) → String унаследованное -
Возвращает строковое представление этого объекта.
© 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/Completer-class.html