Unverified 提交 7cca9f20 authored 作者: Alex Li's avatar Alex Li

🐛 Construct listener gracefully

上级 72a628b0
...@@ -25,21 +25,22 @@ import 'method_channel/fluwx_platform_interface.dart'; ...@@ -25,21 +25,22 @@ import 'method_channel/fluwx_platform_interface.dart';
import 'response/wechat_response.dart'; import 'response/wechat_response.dart';
class Fluwx { class Fluwx {
late final WeakReference<void Function(WeChatResponse event)> Fluwx() {
responseListener; _responseSubscription = FluwxPlatform.instance.responseEventHandler.listen(
_responseEventListener,
onDone: () {
_responseSubscription?.cancel();
},
);
}
final List<WeChatResponseSubscriber> _responseListeners = []; final _responseListeners = <WeChatResponseSubscriber>[];
StreamSubscription? _responseSubscription;
Fluwx() { void _responseEventListener(WeChatResponse event) {
responseListener = WeakReference((event) { for (final listener in _responseListeners.toList()) {
for (var listener in _responseListeners) {
listener(event); listener(event);
} }
});
final target = responseListener.target;
if (target != null) {
FluwxPlatform.instance.responseEventHandler.listen(target);
}
} }
Future<bool> get isWeChatInstalled => Future<bool> get isWeChatInstalled =>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论