1分钟
08 Stream变换
Stream
是支持变换处理的,针对 Stream
我们可以经过多次变化来得到我们需要的结果。那么这些变化是怎么实现的呢?
如下图所示,一般操作符变换的 Stream
实现类,都是继承了 _ForwardingStream
, 在它的内部的_ForwardingStreamSubscription
里,会通过上一个 Pre A Stream
的 listen
添加 _handleData
回调,之后在回调里再次调用新的 Current B Stream
的 _handleData
。
所以事件变化的本质就是,变换都是对 Stream
的 listen
嵌套调用组成的。
同时 Stream
还有转换为 Future
, 如 firstWhere
、 elementAt
、 reduce
等操作符方法,基本都是创建一个内部 _Future
实例,然后再 listen
的回调用调用 Future
方法返回。
学员评价