我正在使用 blocs 和 rxdart。有一些块我不会“按屏幕/小部件”实例化,而是在应用程序中全局实例化,因为我在应用程序会话的整个生命周期中都需要相同的实例。因此,我不会通过关闭流来处理它们。
当我注销用户时,我想确保所有流/主题都已重置。我怎样才能实现这个目标?
这是我有一个简单的块:
class FriendsBloc {
final FriendsRepository _friendsRepository = FriendsRepository();
final BehaviorSubject<FriendsResponse> _friendsSubject = BehaviorSubject<FriendsResponse>();
BehaviorSubject<FriendsResponse> get friends => _friendsSubject;
Future<void> getFriends() async {
try {
FriendsResponse response = await _friendsRepository.getFriends();
_friendsSubject.sink.add(response);
} catch (e) {
_friendsSubject.sink.addError(e);
}
}
dispose() {
_friendsSubject.close();
}
}
final friendsBloc = FriendsBloc();
Run Code Online (Sandbox Code Playgroud)