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