这是很容易,看看到BehaviorSubject类从RxDart库。
默认情况下,BehaviorSubject是广播(又称热播)控制器,以履行Rx Subject合同。这意味着可以多次收听主题的流。
所以,只要换线
StreamController<List<Preset>> _presetsController = new StreamController();
至
StreamController<List<Preset>> _presetsController = new BehaviorSubject();
并全部删除
.asBroadcastStream()
而已!
在官方文档中,不建议使用asBroadcastStream()
创建流控制器的一种更危险的方法是通过asBroadcastStream()查看单个订阅控制器。调用asBroadcastStream基本上可以告诉单订阅流用户想要接管该流的生命周期管理。与cancelOnError订阅服务器结合使用,很容易导致单流订阅永远不会关闭,从而导致内存或资源泄漏。



