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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。