在Dart中将Sink和Pipe与流一起使用有什么区别?

时间:2019-03-12 03:26:24

标签: dart stream pipe sink

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,请pipeStreamController。如果您使用的是StreamController,请向其下沉Stream。有一个特定的理由要使用一个而不是另一个?

0 个答案:

没有答案