Flutter 快速事件导致数据丢失

Flutter 快速事件导致数据丢失,flutter,dart,flutter-bloc,Flutter,Dart,Flutter Bloc,我对弗利特和著名的弗利特集团图书馆不熟悉。我创建了一个基于BLoC模式的聊天系统: 小部件向chatBloc触发事件 chatBloc捕获事件,处理它并调用chatRepository ChatRepository将消息作为草稿添加到其messageList变量中,然后将消息发送到API ChatRepository在完成时从API接收消息,并在其messageList变量中替换草稿 ChatBloc将生成其最终状态,页面将重建 只要一次处理的消息不超过一条,一切正常 如果我的按钮小部件触发两个

我对弗利特和著名的弗利特集团图书馆不熟悉。我创建了一个基于BLoC模式的聊天系统:

  • 小部件向chatBloc触发事件
  • chatBloc捕获事件,处理它并调用chatRepository
  • ChatRepository将消息作为草稿添加到其messageList变量中,然后将消息发送到API
  • ChatRepository在完成时从API接收消息,并在其messageList变量中替换草稿
  • ChatBloc将生成其最终状态,页面将重建
  • 只要一次处理的消息不超过一条,一切正常

    如果我的按钮小部件触发两个快速事件,它们将重叠,因此第二个事件将在第一个事件仍在进行时触发。在第二个事件开始时,第一条消息仍然是草稿,因此,当消息2完成并chatRepository更新其消息列表时,即使消息1已被验证,它也会将其视为草稿

    在这一点上,我在问自己,是我犯了错误,还是我试图用错误的方式去做。 在后台创建队列并逐个处理消息是否更好


    谢谢你的帮助

    您可能应该调整不同的错误处理方式,如果您注意到一些聊天应用程序,它们往往会指示发送的每条消息的状态,当该消息未能发送时,则会显示错误。也许你应该尝试一下?好吧,捕捉并向用户报告并没有实际的错误。当前的问题是chatBloc中的存储库实例没有按预期更新其messageList。