是否可以从流<列表<未来中删除"未来"部分<String>>>使其成为流<列表<String>>?



我想知道当转换器只返回Future时,是否可以在 Dart 中将对象 A 流转换为另一个对象 B。(例如A -> Future<B>(

下面是一个示例...

Future<Car> getCar(String carId){
...
}
main(){
Stream<List<String>> carIds = listCarIds(...);
Stream<List<Car>> cars = ?? // <-- Is it possible to get this when `getCar` only returns future?
}

我只能做Stream<List<Future<Car>>>,不能做Stream<List<Car>>.

根据@user2864740的建议,我能够使用以下链方法进行转换。

Stream<List<String>> idStream = ...
Stream<List<Car>> carStream = idStream
.map((ids) => ids.map((id) => getCar(id)))
.map((carFutureList) => Future.wait(carFutureList))
.asyncMap((futureCarList) => futureCarList);

最新更新