StreamController<T> абстрактный класс
Контроллер со управляемым потоком.
Этот контроллер позволяет отправлять данные, ошибки и завершающие события в свой поток. Этот класс может быть использован для создания простого потока, на который другие могут подписаться и в который можно отправлять события.
Можно проверить, приостановлен ли поток или нет, есть ли подписчики или нет, а также получить обратный вызов, когда изменится какой-либо из этих параметров.
Если поток начинает или перестаёт иметь слушателей (первый слушатель подписывается, последний отписывается), обратный вызов onSubscriptionStateChange уведомляется как можно скорее. Если состояние подписки меняется во время отправки события или выполнения обратного вызова, изменение не будет сообщено, пока текущее событие или обратный вызов не завершится. Если при этом изменилось и состояние приостановки, то уведомление будет только о состоянии подписки.
Если состояние подписчика не изменилось, но изменилось состояние приостановки, обратный вызов onPauseStateChange уведомляется как можно скорее, после обработки текущего события или завершения другого обратного вызова. Это происходит, если поток не приостановлен, и слушатель приостанавливает его, или если поток возобновлён из приостановки и не имеет ожидающих событий. Если слушатели возобновляют приостановленный поток, в котором всё ещё есть очереди событий, контроллер всё ещё будет считать поток приостановленным до тех пор, пока все ожидающие события не будут обработаны.
Вызов обратного вызова зависит только от состояния до и после действия с потоком, например, отправки события. Если состояние меняется несколько раз во время действия, а затем возвращается к тому же состоянию, что и раньше, никакой обратный вызов не выполняется.
Если слушатели добавляются после завершения потока (отправка события "завершено"), слушателям в конечном итоге будет отправлено событие "завершено", но они не повлияют на поток вообще и не вызовут обратные вызовы. С точки зрения контроллера, поток полностью инертен, когда завершён.
- Реализует
-
- StreamSink<T>
- Реализуется в
Конструкторы
- 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