我的ScanStreamTransformer函数缺了什么?需2个位置参数但仅传入1个
解决方案
ScanStreamTransformer的第二个参数就是累加器的初始值,你只需传入匹配Future<TrailerModelEntity>类型的初始值即可,按你的业务场景分两种可选方案:
- 如果你有预先定义的
TrailerModelEntity空占位实例,直接传入该实例包裹的Future:_itemTransformer() { return ScanStreamTransformer( (Future<TrailerModelEntity> trailer, int id, int index) { trailer = _repository.trailer(id); return trailer; }, // 初始值写在这里 Future<TrailerModelEntity>.value(你的默认TrailerModelEntity实例), ); } - 如果你确定累加逻辑不会用到初始值(你当前的写法每次都会直接覆盖trailer参数,不会读取初始值的内容),如果项目开启了空安全且
TrailerModelEntity为可空类型,可以直接传空的完成态Future:Future<TrailerModelEntity?>.value(null)
额外提示
你当前的写法没有用到上一轮累加返回的trailer结果,每次都是直接返回全新的请求Future,如果不需要保留之前的累加状态,完全可以替换为更简单的map操作符,不需要使用ScanStreamTransformer。
内容的提问来源于stack exchange,提问作者keven
相关产品推荐
相关产品推荐

