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 Stream.fromFutures用法及代碼示例
- Dart Stream.fold用法及代碼示例
- Dart Stream.fromFuture用法及代碼示例
- Dart Stream.fromIterable用法及代碼示例
- Dart Stream.map用法及代碼示例
- Dart Stream.asBroadcastStream用法及代碼示例
- Dart Stream.handleError用法及代碼示例
- Dart Stream.where用法及代碼示例
- Dart Stream.reduce用法及代碼示例
- Dart Stream.join用法及代碼示例
- Dart Stream.error用法及代碼示例
- Dart Stream.periodic用法及代碼示例
- Dart Stream.take用法及代碼示例
- Dart Stream.every用法及代碼示例
- Dart Stream.lastWhere用法及代碼示例
- Dart Stream.contains用法及代碼示例
- Dart Stream.eventTransformed用法及代碼示例
- Dart Stream.drain用法及代碼示例
- Dart Stream.empty用法及代碼示例
- Dart Stream.multi用法及代碼示例
- Dart Stream.distinct用法及代碼示例
- Dart Stream.timeout用法及代碼示例
- Dart Stream.transform用法及代碼示例
- Dart Stream.singleWhere用法及代碼示例
- Dart Stream.skipWhile用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 firstWhere method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。