如何在不使用地图的情况下将流转换为另一种类型?

How to convert a stream to another type without using map?

我有这个代码:

Stream<int> get fooStream async* {
  barStream.listen((_) async* { 
    int baz = await getBaz();
    yield baz; // Does not work
  });  
}

如何从另一个流中 return Stream<int>


注意:如果我使用map来转换流,那么我将不得不return Stream<Future<int>>,但我想要至 return Stream<int>。我也不想为这个小东西使用 rxdart pacakge。

  1. 使用asyncMap

    barStream.asyncMap((e) => getBaz())
    
  2. 使用await for

    Stream<int> get fooStream async* {
     await for (final item in barStream) {
       yield await getBaz();
     }
    }