Метод listen
StreamSubscription<SecureSocket> listen(Добавляет подписку на этот поток.
Возвращает StreamSubscription, который обрабатывает события из потока с использованием предоставленных onData, onError и onDone обработчиков. Обработчики можно изменить в подписке, но они начинаются с предоставленных функций.
При каждом событии данных из этого потока вызывается обработчик onData подписчика. Если onData имеет значение null, ничего не происходит.
При ошибках из этого потока вызывается обработчик onError с объектом ошибки и, возможно, стеком вызовов.
Обратный вызов onError должен быть типа void onError(error) или void onError(error, StackTrace stackTrace). Если onError принимает два аргумента, он вызывается с объектом ошибки и стеком вызовов (который может быть null, если сам поток получил ошибку без стека вызовов). В противном случае он вызывается только с объектом ошибки. Если 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 Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-io/SecureServerSocket/listen.html