stream - 如何解释这两种广播流创作之间的区别?
问题描述
根据我创建广播流/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 上做了这个测试)
解决方案
推荐阅读
- ios - 系统因“DTServiceHub”进程而过载
- pandas - pd.merge 之后使用另一个键进一步匹配
- arrays - 在数组 C Lang 中找到一对数字的最小值
- vim - 为 vim 编辑器定义默认文本
- java - Listview自定义适配器多项选择
- reactjs - 当 useState 钩子更改状态时,React.js 组件不会重新渲染子组件
- node.js - Mongoose Model.schema.path() 返回一个意外的对象
- php - 未定义的$链接?“mysqli_prepare() 期望参数 1 是..”
- sql - PostgreSQL SQL 查询返回所有图形节点(连接的组件),提供一个节点来查询
- android - Jetpack Compose 中的作用域状态