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


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