Метод listen
StreamSubscription<T> 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<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 Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/StreamView/listen.html