flutter stream

Stream可以说是构成Dart响应式流编程重要组成部分。还记得之前文章中说过的Future吗,我们知道每个Future代表单一的值,可以异步传送数据或异常。而Stream的异步工作方式和Future类似,只是Stream代表的是一系列的事件,那么就可能传递任意数据值,可能是多个值也可以是异常。比如从磁盘中读取一个文件,那么这里返回的就是一个Stream。此外Stream是基于事件流订阅的机制来运转工作的。

首先,在Dart单线程模型中,要实现异步就需要借助类似Stream、Future之类的API实现。所以Stream可以很好地实现Dart的异步编程。
此外,在Dart中一些异步场景中,比如磁盘文件、数据库读取等类似需要读取一系列的数据时,这种场景Future是不太合适的,所以在一些需要实现一系列异步事件时Stream就是不错的选择,Stream提供一系列异步的数据序列。换个角度理解Stream就是一系列的Future组合,Future只能有一个异步响应,而Stream就是一系列的异步响应。

官方说法:Dart通过使用streams对于异步数据流有着非常好的支持Stream<int> count() async*{ int i=1; while(true){ yield i++; } }

如何使用Stream?使用StreamBuilder就可以做到!StreamBuilder会监听Stream事件,会为每一个时间都创建一个句柄,以便让他们在最新的时间上进行工作。

StreamBuilder<int>(
  stream:_myStream,//传递stream参数
  builder:(context,snapshot){
  return MyWidget(snapshot.data);//snap参数表示当前应用所拥有的状态
  }
  );

更多详细讲解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值