首页 > 解决方案 > 如何解释这两种广播流创作之间的区别?

问题描述

根据我创建广播流/streamController 的方式,结果是不一样的。

StreamController.broadcast()

final sc = StreamController.broadcast();
final stream = sc.stream;
print(stream.isBroadcast);
stream.length.then(print);
stream.length.then(print);
sc..add('')..close();
stream.length.then(print);
stream.length.then(print);

我得到输出:

true
c0
d0
a1
b1

StreamController.stream.asBroadcastStream()

final sc = StreamController();
final stream = sc.stream.asBroadcastStream();
print(stream.isBroadcast);
stream.length.then(print);
stream.length.then(print);
sc..add('')..close();
stream.length.then(print);
stream.length.then(print);

我得到输出:

true
a1
b1
c1
d1

如何解释差异?

(我在 DartPad SDK 2.0.0 上做了这个测试)

标签: streamdart

解决方案


推荐阅读