用户登录

如果想多次订阅流水线分别去做不同的处理,可以用 Broadcast 类型的流水线。我们先准备几个处理方法,修改一下这个 onDataVehicle,把数据输出到控制台的时候可以给它添加一个前缀区别一下,添加一个 onDataVehicle 这个前缀。

同样再处理一下这个 onErrorVehicle,也给它添加一个前缀,前缀是 onErrorVehicle。 然后可以再复制一份这两个处理方法。

修改一下名字,一个是 onData,去掉 Vehicle,再去掉前缀里的 Vechile。 再修改一下这个错误处理器,把 Vechile 删除掉。

下面我们再去创建一个可以多次订阅的流水线,这里可以用一下 StreamController 里的 broadcast 这个方法创建一个流水线控制器。

这样这个控制器管理的流水线就可以被订阅多次。

这里已经订阅了一次这个流水线,复制一份再订阅一次,修改一下数据处理器,还有错误处理器。 数据处理器是 onData,错误处理器设置成 onError。

下面创建了一个下水槽,用它上面的 add 还有 addError 在流水线上添加了一个数据还有一个错误。

然后可以运行一下应用。

这次你会发现,在控制台上会输出 onDataVehicle,后面是添加到流水线上的数据,接着又输出了一个 onData,后面也是添加到流水线上的数据。这是因为现在这个流水线被订阅了两次,订阅的时候使用了不同的数据处理方法,还有错误处理方法。

Dart 异步编程:多次订阅流水线(Broadcast)《 Dart 语言:异步编程 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点