closeOnListen method

StreamSubscription closeOnListen({
  1. required dynamic onListen(),
})

[closeOnListen[ let you can close onListen function before closing port and using onError or onDone when port is closed.

Implementation

StreamSubscription closeOnListen({required Function() onListen}) {
  ///定义一个Controller
  final _closeController = StreamController<String>(
    onListen: onListen,
  );
  final _closeSink = _closeController.sink;

  ///事件订阅对象
  StreamSubscription _closeSubscription =
      _closeController.stream.listen((event) {});
  try {
    CloseHandle(handler!);
    _isOpened = false;
  } catch (e) {
    _closeSink.addError(e.toString());
  } finally {
    _closeSink.close();
    _closeController.close();
  }
  return _closeSubscription;
}