Asynchronous 如何结束(完成)基于另一个无限流创建的异步*流?

Asynchronous 如何结束(完成)基于另一个无限流创建的异步*流?,asynchronous,flutter,dart,Asynchronous,Flutter,Dart,我有一个wait for循环,在流函数async*函数中从无限流获取数据 我想在一定条件下完成(结束)流 我期待着break

我有一个wait for循环,在流函数async*函数中从无限流获取数据 我想在一定条件下完成(结束)流

我期待着
break等待
将执行此操作,但不会执行此操作。 有什么建议吗? 以下是一段代码片段:

Stream<int> conditionLoop() async* {     
  await for (double value in hardware.inputStream()) {
      if (value < 0.0 || value > 98.0) break;
    yield value.round();
  }
  print('stream completed!');
}
Stream conditionLoop()异步*{
等待(hardware.inputStream()中的双值){
如果(值<0.0 | |值>98.0)中断;
屈服值。舍入();
}
打印('流已完成!');
}
print('stream completed!')命令从未出现,StreamBuilder小部件也从未获得“ConnectionState.done”


谢谢。

中断
确实让
等待
。如果函数不起作用,则未达到
中断
。请删除for循环并尝试使用。然后在输入流方法之后使用If条件。并使用流订阅停止该流。