我想知道当转换器只返回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);