我正在使用带有RxDart的BLoC模式的Flutter项目。我有一个调解器BLoC,它允许BLoC侦听状态更改。
选择一个用户(或添加分数)时,另一集团应为适当的球员发出分数的更新列表。
以下代码是单元测试的一部分。两种方法都有一个打印语句。
stateMediatorBloc.selectUser.add(user1);
stateMediatorBloc.addScore.add(score1);
stateMediatorBloc.addScore.add(score2);
stateMediatorBloc.selectUser.add(user2);
对于此代码,我期望打印顺序:
选择用户1
添加分数
添加分数
选择用户2
实际上,我得到:
选择用户1
添加分数
选择用户2
添加分数
这是中介方法的代码:
Sink<Score> get addScore => _addedScore.sink;
var _addedScore = StreamController<Score>();
Sink<User> get selectUser => _selectedUser.sink;
var _selectedUser = StreamController<User>();
任何人都可以提供关于为什么在添加score2之前选择user2的见解吗?