【问题标题】:How to convert a Future in flutter to a Stream如何将 Flutter 中的 Future 转换为 Stream
【发布时间】:2018-11-14 05:52:05
【问题描述】:

我有一个函数可以返回类型为 duration 的 Future。

Future loadur(TimerService timerservice) async {
 var dur = Duration.zero;
 dur = await timerservice.currentDuration();
 return dur;}

未来从一个计时器服务中获取持续时间,该服务更新自身以运行计时器。现在我希望将未来转换为流,以便我可以在 StreamBuilder 中显示它(Futurebuilder 不更新计时器)。

任何将未来转换为持续时间流的方法都会有所帮助。

【问题讨论】:

  • 无法理解这个问题。您能否解释一下您要解决的实际问题是什么?
  • 我有一个包含计时器/秒表的计时器服务,上面的函数从计时器服务返回时间作为未来。因为它是一个计时器,它每秒左右更新一次。现在我想显示我可以使用未来构建器的持续时间,但它不会每秒更新。所以我需要使用流构建器,但持续时间是未来
  • Future 有 .asStream() 方法可以转换成 Stream。
  • 转换为流的 Future 仍然只会发出一个事件。也许您想使用持续时间来创建Stream.periodic(duration)
  • @Bawantha 我猜像Connectivity().onConnectivityChange.asyncMap((_) => Connectivity().getWifiName()).listen(...)

标签: android dart flutter


【解决方案1】:

你可以使用Stream.fromFuture(dur)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2020-11-05
    • 2021-08-17
    • 2020-05-20
    相关资源
    最近更新 更多