Spec-Zone.ru › Dart 2

dart:io

метод listen

StreamSubscription<List<int>> listen(
  1. void onData(
    1. List<int> event
    )?,
  2. {Function? onError,
  3. void onDone( )?,
  4. bool? cancelOnError}
)
унаследованный

Добавляет подписку на этот поток.

Возвращает StreamSubscription, который обрабатывает события этого потока с помощью предоставленных обработчиков onData, onError и onDone. Обработчики можно изменить в подписке, но изначально в качестве них используются предоставленные функции.

При каждом событии данных из этого потока вызывается обработчик подписчика onData. Если onData имеет значение null, ничего не происходит.

При возникновении ошибок в этом потоке обработчик onError вызывается с объектом ошибки и, возможно, трассировкой стека.

Функция обратного вызова onError должна иметь тип void Function(Object error) или void Function(Object error, StackTrace). Тип функции определяет, передается ли в onError аргумент с трассировкой стека. В качестве аргумента трассировки стека может передаваться StackTrace.empty, если этот поток получил ошибку без трассировки стека.

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

Если этот поток закрывается и отправляет событие завершения, вызывается обработчик onDone. Если onDone имеет значение null, ничего не происходит.

Если cancelOnError имеет значение true, подписка автоматически отменяется при получении первого события ошибки. Значение по умолчанию — false.

Пока подписка приостановлена или отменена, она не получает события, и ни одна из функций-обработчиков событий не вызывается.

Реализация

StreamSubscription<List<int>> listen(void onData(List<int> event)?,
    {Function? onError, void onDone()?, bool? cancelOnError}) {
  return _stream.listen(onData,
      onError: onError, onDone: onDone, cancelOnError: cancelOnError);
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-io/Stdin/listen.html

Spec-Zone.ru

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