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
. Есть ли особая причина использовать один против другого?
sc.sink
совпадает сsc
. Итак,sc.sink.addStream(aStream)
совпадает сsc.addStream(aStream);
. - person Nate Bosch   schedule 13.03.2019