【发布时间】:2019-04-17 12:45:52
【问题描述】:
我正在研究流的概念和实际用途(虽然非常基础),我发现下面的代码在调用 listen 方法之后通过接收器添加数据。那么作为参数传递给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();
}
【问题讨论】: