метод 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<RawSecureSocket> listen(void onData(RawSecureSocket s)?,
{Function? onError, void onDone()?, bool? cancelOnError}) {
return _controller.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/RawSecureServerSocket/listen.html