метод listen
- void onData(
- SecureSocket socket
- {Function? onError,
- void onDone( )?,
- 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<SecureSocket> listen(void onData(SecureSocket socket)?,
{Function? onError, void onDone()?, bool? cancelOnError}) {
return _socket.map((rawSocket) => new SecureSocket._(rawSocket)).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/SecureServerSocket/listen.html