Flutter 为什么ScanStreamTransformer不返回任何内容

Flutter 为什么ScanStreamTransformer不返回任何内容,flutter,dart,rxdart,Flutter,Dart,Rxdart,我不确定我的代码哪一部分是错的。我无法在我的ScanStreamTransformer中接收任何内容,正如您在下面的\u itemsTransformer()中看到的,我返回了ScanStreamTransformer,我希望ScanStreamTransformer中的打印工作或返回缓存,但它不工作 class CardBloc { final _repo = Repository(); final _tIds = PublishSubject<List<int>&g

我不确定我的代码哪一部分是错的。我无法在我的
ScanStreamTransformer
中接收任何内容,正如您在下面的
\u itemsTransformer()
中看到的,我返回了
ScanStreamTransformer
,我希望
ScanStreamTransformer
中的打印工作或返回缓存,但它不工作

class CardBloc {
  final _repo = Repository();
  final _tIds = PublishSubject<List<int>>();
  final _itemsOt = BehaviorSubject<Map<int, Future<ItemModel>>>();
  final _itemsFt = PublishSubject<int>();


  Stream<List<int>> get topIds => _tIds.stream;
  Stream<Map<int, Future<ItemModel>>> get items => _itemsOt.stream;

  Function(int) get fetchItem => _itemsFt.sink.add;

  fetchIds() async {
    final ids = await _repo.fetchIds();
    _tIds.sink.add(ids);
  }

  CardBloc() {
    _itemsFt.stream.transform(_itemsTransformer()).pipe(_itemsOt);
  }

  _itemsTransformer() {

    return ScanStreamTransformer(
      (Map<int, Future<ItemModel>> cache, int id, index) {
        print('should be print!');

        cache[id] = _repo.fetchItem(id);
        return cache;
      },
      <int, Future<ItemModel>>{},
    );
  }

  dispose() {
    _tIds.close();
    _itemsOt.close();
    _itemsFt.close();
  }
}
class CardBloc{
最终_repo=Repository();
最终_tIds=PublishSubject();
final _itemsOt=行为主体();
最终_itemsFt=PublishSubject();
Stream get topIds=>\u tIds.Stream;
Stream get items=>\u itemsOt.Stream;
函数(int)get fetchItem=>\u itemsFt.sink.add;
fetchIds()异步{
final id=wait_repo.fetchIds();
_tIds.sink.add(ID);
}
CardBloc(){
_itemsFt.stream.transform(_itemsTransformer()).pipe(_itemsOt);
}
_itemsTransformer(){
回程扫描变压器(
(映射缓存,int-id,索引){
打印('应该是打印!');
cache[id]=\u repo.fetchItem(id);
返回缓存;
},
{},
);
}
处置{
_tIds.close();
_itemsOt.close();
_itemsFt.close();
}
}

似乎
\u itemsFt.stream中没有项目,或者没有人
listen()
s to
\u itemsOt
@pskink谢谢,我没有插入我所有的代码类,我更新了问题,我想现在更清楚了,我想did@pskink,你说得对,我忘了将数据传递给
fetchItem
,由于该
\u itemsFt.stream
没有数据,再次感谢您提及您的欢迎,顺便问一下,您为什么需要
管道
,第二个
\u itemsOt
流?
transform()
方法返回一个
,这样您就可以直接使用它,而无需
管道