flutter - 完成后重复流
问题描述
你好我在我的应用程序上使用流来获取一些数据。在数据结束时流停止,我想要的是每次流完成时重新开始
final stream = Stream.periodic(kDuration, (count) => count)
.take(kLocations.length);
stream.listen((value) => newLocationUpdate(value)
我搜索了几个小时并没有找到一个好的解决方案
解决方案
.take(kLocations.length)
一旦发出了该数量的元素,调用将导致流关闭。例如:
final stream = Stream.periodic(kDuration, (count) => count).take(3);
stream.listen(print); // prints 0, 1, 2, then stops
相反,如果您希望重复此操作(即发出 0、1、2、0、1、2 等),则可以使用模运算符 ( %
):
final stream = Stream.periodic(kDuration, (count) => count % 3);
stream.listen(print); // prints 0, 1, 2, 0, 1, 2, 0, 1, 2, ...
推荐阅读
- python - Django:跨三个模型进行注释
- c# - DatabaseGenerated Guid 太可预测了?
- visual-studio - Visual Studio 中的 SPFX
- typo3 - TYPO3v9:实现 PageTitleProvider 的“正确”方式是什么?
- excel - Excel sub 中的内存管理/泄漏,有几个直到循环
- sql - 在 .NET 中替换 IQueryable 查询中的特定对象失败
- c# - 时间:2019-05-01 标签:c#lamba with datetime and between
- android - CountDownLatch 阻塞来自其他线程的回调
- php - Magento 2:如何安装通过 composer.json 从 Magento 2 市场购买的第 3 方私有 github 存储库扩展
- python - Python - 从日期获取周数,反之亦然不对应