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


Dart Stream.firstWhere用法及代碼示例


dart:async 庫中Stream.firstWhere 方法的用法介紹如下。

用法:

Future<T> firstWhere(
   bool test(
   T element   
),    
   {T orElse(
)?}   
)

查找與 test 匹配的此流的第一個元素。

返回使用此流的第一個元素完成的未來,test 為其返回 true

如果在這個流完成之前沒有找到這樣的元素,並且提供了orElse函數,則調用orElse的結果將成為未來的值。如果orElse 拋出,返回的future 以該錯誤完成。

如果此流在第一個匹配元素之前發出錯誤,則返回的未來會以該錯誤完成,並且處理停止。

在收到第一個匹配元素或錯誤後停止偵聽此流。

在內部,該方法在與謂詞匹配的第一個元素之後取消其訂閱。這意味著single-subscription(非廣播)流已關閉,並且在調用此方法後無法重用。

如果發生錯誤,或者如果此流結束時未找到匹配項且未提供 orElse 函數,則返回的 future 將完成並出現錯誤。

例子:

var result = await Stream.fromIterable([1, 3, 4, 9, 12])
    .firstWhere((element) => element % 6 == 0, orElse: () => -1);
print(result); // 12

result = await Stream.fromIterable([1, 2, 3, 4, 5])
    .firstWhere((element) => element % 6 == 0, orElse: () => -1);
print(result); // -1

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 firstWhere method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。