Flutter 如何在Dart中制作Future.wait的流版本?

Flutter 如何在Dart中制作Future.wait的流版本?,flutter,dart,Flutter,Dart,我想运行Future.wait处理一些网络呼叫,以便它们可以同时运行。我想在结果可用时进一步加快返回速度,以便开始显示它们。我想对Future.wait调用进行一个小小的修改就可以了,但不幸的是,它在内部使用私有类。有没有更好的方法来实现这一点 您可以使用Stream.fromFutures 流报告中流的未来结果 期货交易完成的顺序。每个未来都提供 数据事件或错误事件,取决于未来的完成方式 如果在启用Stream.fromFutures时某些期货已经完成 调用时,其结果将以未指定的顺序发出 当所

我想运行Future.wait处理一些网络呼叫,以便它们可以同时运行。我想在结果可用时进一步加快返回速度,以便开始显示它们。我想对Future.wait调用进行一个小小的修改就可以了,但不幸的是,它在内部使用私有类。有没有更好的方法来实现这一点

您可以使用Stream.fromFutures

流报告中流的未来结果 期货交易完成的顺序。每个未来都提供 数据事件或错误事件,取决于未来的完成方式

如果在启用Stream.fromFutures时某些期货已经完成 调用时,其结果将以未指定的顺序发出

当所有期货都完成时,流关闭

我的真实用例-显示加载比预期花费更多的时间

若我真正的api调用很快就结束了,那个么我只会产生LoadedState并停止侦听流 如果我的真实api调用太慢,special Future.delayed将启动特殊状态LoadingTakesToLongState 您可以使用Stream.fromFutures

流报告中流的未来结果 期货交易完成的顺序。每个未来都提供 数据事件或错误事件,取决于未来的完成方式

如果在启用Stream.fromFutures时某些期货已经完成 调用时,其结果将以未指定的顺序发出

当所有期货都完成时,流关闭

我的真实用例-显示加载比预期花费更多的时间

若我真正的api调用很快就结束了,那个么我只会产生LoadedState并停止侦听流 如果我的真实api调用太慢,special Future.delayed将启动特殊状态LoadingTakesToLongState
美丽的解决我的问题真漂亮!解决我的问题
Stream<int> streamingInts = Stream.fromFutures([
  Future.delayed(Duration(seconds: 1), () => 1),
  Future.delayed(Duration(seconds: 2), () => 2),
]);

 await for (final i in streamingInts) {
   print(i);   
 }
      Stream<BlocState> loadingStates = Stream.fromFutures([
        Future.delayed(_kTooSlowDelay, () => LoadingTakesTooLongState()),
        _loadData(),
      ]);

      await for (var state in loadingStates) {
        yield state;
        if (state is LoadedState) break;
      }

      Future<LoadedState> _loadData() ...