flutter Stream
介绍
本篇文章将会详细说明flutter中stream的基本使用
Flutter 中,整个 Stream 主要包含了 StreamController
、Sink
、Stream
、StreamSubscription
四个对象,通过这四个对象来操控整个Stream的运行。
-
StreamController
有一个事件源叫
Stream
,为了方便控制Stream
,官方提供了使用StreamController
作为管理;同时它对外提供了StreamSink
对象作为事件输入口,可通过sink
属性访问; 又提供stream
属性提供Stream
对象的监听和变换,最后得到的StreamSubscription
可以管理事件的订阅。可以说,
StreamController
就是如其名字所示一样用来管理其他三个对象的对象。 -
StreamSink
sink
英文的意思为水槽,我们可以将其理解为日常生活中的厨房的洗碗槽,洗碗槽(sink
)中的水(data
)会流进管子(stream
)中。一般作为事件的入口,提供如add
,addStream
等。 -
StreamSubscription
这是一个事件订阅后的对象,,Stream中有两种订阅模式,分别是单点订阅和广播。
表面上用于管理订阅过等各类操作,如
cacenl
、pause
,同时在内部也是事件的中转关键。 -
Stream
事件源本身,一般可用于监听事件或者对事件进行转换,如
listen
、where
。