Я изучаю концепцию и практическое использование потоков (хотя и очень базовый уровень) и обнаружил, что приведенный ниже код добавляет данные через приемник ПОСЛЕ вызова метода listen.Так передается ли функция для прослушивания в качестве аргумента, повторяющегося и повторяющегося до тех пор, пока наша программа не закончится?
Я пытался приостановить программу на несколько секунд между каждым вызовом sink.add, но консоль напечатала всюданные сразу ... Я все еще пытаюсь понять, как работает вся концепция.
void main() {
//
// Initialize a "Single-Subscription" Stream controller
//
final StreamController ctrl = StreamController();
//
// Initialize a single listener which simply prints the data
// as soon as it receives it
//
final StreamSubscription subscription = ctrl.stream.listen((data) => print('$data'));
//
// We here add the data that will flow inside the stream
//
ctrl.sink.add('my name');
ctrl.sink.add(1234);
ctrl.sink.add({'a': 'element A', 'b': 'element B'});
ctrl.sink.add(123.45);
//
// We release the StreamController
//
ctrl.close();
}