Flutter BloC 在注销时刷新流

Sca*_*aux 5 dart flutter

我正在使用 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)