Spec-Zone.ru › Dart 1

dart:async

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API