Flutter 开发实战

235课时
1K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
1分钟

08 Stream变换

Stream 是支持变换处理的,针对 Stream 我们可以经过多次变化来得到我们需要的结果。那么这些变化是怎么实现的呢?

如下图所示,一般操作符变换的 Stream 实现类,都是继承了 _ForwardingStream , 在它的内部的_ForwardingStreamSubscription 里,会通过上一个 Pre A Streamlisten 添加 _handleData 回调,之后在回调里再次调用新的 Current B Stream_handleData

所以事件变化的本质就是,变换都是对 Streamlisten 嵌套调用组成的。

img

同时 Stream 还有转换为 Future , 如 firstWhereelementAtreduce 等操作符方法,基本都是创建一个内部 _Future 实例,然后再 listen 的回调用调用 Future 方法返回。