我想获取BehaviorSubject的流的长度,但我无法获取。
test('get stream length', ()async{
BehaviorSubject<int> subject = new BehaviorSubject(seedValue: 0);
var act = await subject.stream.length;
expect(act, 1);
});
如何获得这个长度?
答案 0 :(得分:0)
流的长度只有在关闭后才能知道。只要它没有关闭,总是有可能会添加另一个事件。
https://api.dartlang.org/stable/2.1.1/dart-async/Stream/length.html
length属性
Future<int> length
此元素的数量 流。
等待此流的所有元素。当此流结束时, 返回的future由元素数量完成。
如果此流发出错误,则返回的Future将完成 该错误,然后处理停止。
此操作侦听此流和非广播流 找到长度后便无法再使用。
test('get stream length', ()async{
BehaviorSubject<int> subject = new BehaviorSubject(seedValue: 0);
var actFuture = await subject.stream.length;
await subject.close();
expect(actFuture, completion(equals(1));
});