當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。