Метод listen
Добавляет подписку на этот поток.
Возвращает 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<T> listen(void onData(T value)?,
{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.18.5/dart-async/StreamView/listen.html