flutter - 产生订阅流的结果
问题描述
我是 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)”语句不会产生任何内容。我应该如何重写代码,以便每次有连接状态更新时,流都会产生结果或失败?
解决方案
推荐阅读
- excel - 数组公式根据列表检查行中的多列并查找匹配项
- c# - Azure 上的 AspNetIdentity 登录失败 - 初始化字符串的格式不符合从索引 0 开始的规范
- java - 有没有办法将动作与发生在任何地方的特定异常相关联?
- reactjs - 如何测试动态页面标题?
- java - 使用 JSF+Spring-Boot、PrimeFaces 和 Joinfaces 扫描坏幻数的类路径
- typescript - 对于打字稿中的黄瓜数据表,始终返回 true
- django - 如何提高 django 中的导入处理速度?
- batch-file - 在命令提示符中键入变量输入后,如何将变量输入保存到原始批处理文件中?
- c# - MultiBinding 列上的 WPF DisplayMemberBinding
- c# - 如何在 IIS 托管的 C# web 服务中强制访问控制允许来源