未处理的异常:错误状态:无法触发新事件。控制器已经触发了一个事件

时间:2020-06-04 06:03:20

标签: flutter rxdart

我正在使用rxdart流在我的代码中进行从一类到另一类的大量数据传输。我仅使用ReplaySubject,并且在处理大量数据时遇到此错误。堆栈跟踪中没有关于导致哪一行的确切描述。

E/flutter (16730): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Bad state: Cannot fire new event. Controller is already firing an event
E/flutter (16730): #0      _BroadcastStreamController.addError (dart:async/broadcast_stream_controller.dart:257:24)
E/flutter (16730): #1      _StartWithStreamSink.addError (package:rxdart/src/transformers/start_with.dart:22:10)
E/flutter (16730): #2      forwardStream.runCatching (package:rxdart/src/utils/forwarding_stream.dart:26:21)
E/flutter (16730): #3      forwardStream.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:28)
E/flutter (16730): #4      _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (16730): #5      _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (16730): #6      _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter (16730): #7      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter (16730): #8      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:266:7)
E/flutter (16730): #9      _SyncBroadcastStreamController._sendData (dart:async/broadcast_stream_controller.dart:378:20)
E/flutter (16730): #10     _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:252:5)
E/flutter (16730): #11     _StartWithStreamSink.add (package:rxdart/src/transformers/start_with.dart:16:10)
E/flutter (16730): #12     forwardStream.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:49)
E/flutter (16730): #13     forwardStream.runCatching (package:rxdart/src/utils/forwarding_stream.dart:24:12)
E/flutter (16730): #14     forwardStream.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:28)
E/flutter (16730): #15     _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (16730): #16     _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (16730): #17     _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter (16730): #18     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter (16730): #19     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:266:7)
E/flutter (16730): #20     _SyncBroadcastStreamController._sendData (dart:async/broadcast_stream_controller.dart:378:20)
E/flutter (16730): #21     _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:252:5)
E/flutter (16730): #22     _StartWithStreamSink.add (package:rxdart/src/transformers/start_with.dart:16:10)
E/flutter (16730): #23     forwardStream.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:49)
E/flutter (16730): #24     forwardStream.runCatching (package:rxdart/src/utils/forwarding_stream.dart:24:12)
E/flutter (16730): #25     forwardStream.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:28)
E/flutter (16730): #26     _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (16730): #27     _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (16730): #28     _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter (16730): #29     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter (16730): #30     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:266:7)
E/flutter (16730): #31     _SyncBroadcastStreamController._sendData (dart:async/broadcast_stream_controller.dart:378:20)
E/flutter (16730): #32     _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:252:5)
E/flutter (16730): #33     _StartWithStreamSink.add (package:rxdart/src/transformers/start_with.dart:16:10)
E/flutter (16730): #34     forwardStream.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:49)
E/flutter (16730): #35     forwardStream.runCatching (package:rxdart/src/utils/forwarding_stream.dart:24:12)
E/flutter (16730): #36     forwardStream.<anonymous closure>.<anonymous closure> (package:rxdart/src/utils/forwarding_stream.dart:34:28)
E/flutter (16730): #37     _rootRunUnary (dart:async/zone.dart:1192:38)
E/flutter (16730): #38     _CustomZone.runUnary (dart:async/zone.dart:1085:19)
E/flutter (16730): #39     _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7)
E/flutter (16730): #40     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
E/flutter (16730): #41     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:266:7)
E/flutter (16730): #42     _SyncBroadcastStreamController._sendData (dart:async/broadcast_stream_controller.dart:378:20)
E/flutter (16730): #43     _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:252:5)
E/flutter (16730): #44     _StartWithStreamSink.add (package:rxdart/src/transformers/start_with.dart:16

我认为以下任何行都可能是失败点,但不确定。

StreamSubscription<Delta> chatContextDeltaStreamSubscription;
ReplaySubject<Delta> chatContextDeltaSubject;


  void initChatContextualDeltaSubject() {
    chatContextDeltaSubject = ReplaySubject<Delta>();
    synchronousDeltaQueue.forEach((element) {
      chatContextDeltaSubject.add(element.);
    });
  }

  void subscribeToChatContextualDeltaSubject(Function listener) {
    chatContextDeltaStreamSubscription =
        chatContextDeltaSubject.listen((value) {
      listener(value);
    });
  }

  void unSubscribeToChatContextualDeltaSubject() {
    if (chatContextDeltaStreamSubscription != null) {
      chatContextDeltaStreamSubscription.cancel();
    }
  }

0 个答案:

没有答案