import "dart:async";
import "dart:html";
void main() async {
InputElement addStream = querySelector("#addstream");
Stream<int> aStream = _someStream();
StreamController<int> sc = StreamController();
sc.stream.listen((e) => print(e));
addStream.onClick.listen((e) {
sc.sink.addStream(aStream); // streamcontroller brings in stream through the sink
// aStream.pipe(sc); // stream going into streamcontroller through the sink
});
}
在上面的代码中,sc.sink.addStream(aStream)
似乎使用接收器方法将aStream
添加到StreamController
sc。
在此之下,aStream
使用pipe
添加到StreamController sc
中。
这两种方法似乎都做同样的事情。在我看来,使用一种方法替代另一种方法只是样式。如果您使用的是Stream
,请pipe
到StreamController
。如果您使用的是StreamController
,请向其下沉Stream
。有一个特定的理由要使用一个而不是另一个?