在Flutter中将流转换为未来

问题描述

这里是Flutter的初学者,所以如果我的问题很愚蠢,请不要介意...

如何将流转换为未来?

我有一个Stream,它只是多次调用请求的URL,因为它是Stream。我希望能够获取数据而不是加载状态...因为我总是永远都只能加载

某处是否有类似Future.fromStream()功能,我想念它吗?

我能做到吗?

我没有提供任何代码,因为如果您需要代码,我认为不需要,我可以编辑问题

解决方法

Stream具有firstWhere方法,该方法将返回Future

_profileService.profileStream.firstWhere((element) => false);
,

Stream和Future是两个不同的概念。

在使用时,流保持数据更新,而Future仅一次。 使用流的示例:购物车,商品清单 使用future的示例:登录后获取getUserDetails。

如果您正在使用流,则可以使用streambuilder来构建UI

StreamBuilder<User>(
  stream: userBloc.author,// your stream here
  builder:
      (BuildContext context,AsyncSnapshot<User> snapshot) {
    if (snapshot.connectionState == ConnectionState.active && snapshot.hasData) {
      // do your work here
    } else {
      return CircularprogressIndicator();
    }
  },)