Flutter 进阶Flutter

Flutter 的 Stream 探究

2021-04-15  本文已影响0人  NetWork小贱

感觉文章还行,请留下你的赞。

一、Stream 是什么?

Stream 是异步数据事件的源。Stream 提供了一种接收事件序列的方法,可以通过 listen 进行数据监听;通过 error 接收失败状态;通过 done 接收事件的结束状态。

注意: Stream 只有当被监听后,才能使其产生事件。同时会产生一个 StreamSubscription 的对象,该对象是提供事件的活动对象,可用于停止再次监听或者临时暂停订阅事件。

二、 Stream 的订阅对象 StreamSubscription

  1. StreamSubscription 的种类

    Stream 的订阅流有两种,分别是:单订阅流(Single-subscription)和多订阅流(broadcast)。

  2. 单订阅流(Single-subscription)
    • 单订阅流只允许有一个监听器(listen);只有监听后才会产生事件;取消监听器时也停止事件发送,即是 Stream 还有更多事件。
    • 单订阅流即是取消了第一次订阅,也不允许再次订阅。
    • 单订阅流常用于流较大的连续数据事件,如文件 I/O,
  3. 多订阅流(broadcast, 广播)
    • 广播流可以有多个监听器,广播事件就绪时就触发其事件,无论有无监听器。

    • 广播流常用于独立的事件或者观察者。

    • 广播流可以取消监听,然后再次监听。

      注意: 如果多个监听器想订阅单个订阅流,请使用 asBroadcastStream 在单订阅流顶部创建广播流。

三、 Stream 的构建

四、Stream 属性

五、Stream 的方法

上一篇下一篇

猜你喜欢

热点阅读