Spec-Zone.ru › Dart 1

dart:async

StreamController<T> абстрактный класс

Контроллер со управляемым потоком.

Этот контроллер позволяет отправлять данные, ошибки и завершающие события в свой поток. Этот класс может быть использован для создания простого потока, на который другие могут подписаться и в который можно отправлять события.

Можно проверить, приостановлен ли поток или нет, есть ли подписчики или нет, а также получить обратный вызов, когда изменится какой-либо из этих параметров.

Если поток начинает или перестаёт иметь слушателей (первый слушатель подписывается, последний отписывается), обратный вызов onSubscriptionStateChange уведомляется как можно скорее. Если состояние подписки меняется во время отправки события или выполнения обратного вызова, изменение не будет сообщено, пока текущее событие или обратный вызов не завершится. Если при этом изменилось и состояние приостановки, то уведомление будет только о состоянии подписки.

Если состояние подписчика не изменилось, но изменилось состояние приостановки, обратный вызов onPauseStateChange уведомляется как можно скорее, после обработки текущего события или завершения другого обратного вызова. Это происходит, если поток не приостановлен, и слушатель приостанавливает его, или если поток возобновлён из приостановки и не имеет ожидающих событий. Если слушатели возобновляют приостановленный поток, в котором всё ещё есть очереди событий, контроллер всё ещё будет считать поток приостановленным до тех пор, пока все ожидающие события не будут обработаны.

Вызов обратного вызова зависит только от состояния до и после действия с потоком, например, отправки события. Если состояние меняется несколько раз во время действия, а затем возвращается к тому же состоянию, что и раньше, никакой обратный вызов не выполняется.

Если слушатели добавляются после завершения потока (отправка события "завершено"), слушателям в конечном итоге будет отправлено событие "завершено", но они не повлияют на поток вообще и не вызовут обратные вызовы. С точки зрения контроллера, поток полностью инертен, когда завершён.

Реализует
  • StreamSink<T>
Реализуется в
  • SynchronousStreamController

Конструкторы

StreamController({void onListen(), void onPause(), void onResume(), dynamic onCancel(), bool sync: false })
factory

Контроллер с потоком, который поддерживает только одного подписчика.

StreamController.broadcast({void onListen(), void onCancel(), bool sync: false })
factory

Контроллер, где поток может быть прослушан более одного раза.

Свойства

hasListener → bool
только для чтения

Есть ли подписчик на Stream.

isClosed → bool
только для чтения

Закрыт ли контроллер потока для добавления дополнительных событий.

isPaused → bool
только для чтения

Нужно ли буферизовать события для подписки.

onCancel → ControllerCancelCallback
чтение/запись

Обратный вызов, вызываемый при отмене потока.

onListen → ControllerCallback
чтение/запись

Обратный вызов, вызываемый при подписке на поток.

onPause → ControllerCallback
чтение/запись

Обратный вызов, вызываемый при приостановке потока.

onResume → ControllerCallback
чтение/запись

Обратный вызов, вызываемый при возобновлении потока.

sink → StreamSink<T>
только для чтения

Возвращает представление этого объекта, который раскрывает только интерфейс StreamSink.

stream → Stream<T>
только для чтения

Поток, который управляет этим контроллером.

done → Future
только для чтения, унаследованное

Возвращает будущее, которое завершается, когда StreamSink завершён.

hashCode → int
только для чтения, унаследованное

Хеш-код этого объекта.

runtimeType → Type
только для чтения, унаследованное

Представление runtime типа объекта.

Операторы

operator ==(other) → bool
унаследованное

Оператор равенства.

Методы

add(T event) → void

Отправляет событие данных event.

addError(Object error, [ StackTrace stackTrace ]) → void

Отправляет или помещает в очередь событие ошибки.

addStream(Stream<T> source, { bool cancelOnError: true }) → Future

Получает события из source и помещает их в поток этого контроллера.

close() → 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/StreamController-class.html

Spec-Zone.ru

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