我是 Dart 流的初学者。我有一个方法应该使用connectivity_plus包返回连接结果或异常。
final Connectivity _connectivity = Connectivity();
ConnectivityResult _result = ConnectivityResult.none;
Stream<Either<ValueFailure, ConnectivityResult>> watchConnectivity() async* {
try {
_result = await _connectivity.checkConnectivity();
_connectivity.onConnectivityChanged.listen((ConnectivityResult result) {
// Got a new connectivity status!
_result = result;
});
yield right(_result);
} on PlatformException catch (e) {
yield Left(ValueFailure.connectivityError(failMessage: e.message));
}
}
目前,在连接流订阅内发生新事件后,“yield right(_result)”语句不会产生任何内容。我应该如何重写代码,以便每次有连接状态更新时,流都会产生结果或失败?