问题描述
这里是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();
}
},)