当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Stream.distinct用法及代码示例


dart:async 库中Stream.distinct 方法的用法介绍如下。

用法:

Stream<T> distinct(
   [bool equals(
   T previous,    
   T next   
)?]   
)

如果数据事件等于前一个数据事件,则跳过它们。

返回的流提供与此流相同的事件,只是它从不提供两个相等的连续数据事件。也就是说,错误被传递到返回的流,如果数据事件与最近发出的数据事件不同,则它们被传递。

相等性由提供的equals 方法确定。如果省略,则使用最后提供的数据元素上的'==' 运算符。

如果equals 抛出,数据事件将替换为包含抛出错误的错误事件。该行为等同于发出错误事件的原始流,并且它不会改变最近发出的数据事件是什么。

如果此流是,则返回的流是广播流。如果多次收听广播流,则每个订阅将单独执行equals 测试。

例子:

final stream = Stream.fromIterable([2, 6, 6, 8, 12, 8, 8, 2]).distinct();
stream.forEach(print); // Outputs events: 2,6,8,12,8,2.

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 distinct method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。