我想要有一个BLoC类,当两个输入(接收器)中的一个/两个被更新时,流输出需要更新。
当Sink被更新/不同时,我如何连接Steam以触发?
import 'package:escapemodels/src/bloc/blocbase.dart';
import 'package:rxdart/rxdart.dart';
class MathAddBloc implements BlocBase {
final Sink<int> x;
final Sink<int> y;
final Stream<int> addxy;
factory MathAddBloc() {
final x = PublishSubject<int>();
final y = PublishSubject<int>();
// This is the part that I am confused about - I can figure how to trigger when one Sink/Observable changes but not when either one is updated.
final addxy = x
.distinct()
.switchMap<int>((int x) => (x + y.last))
.startWith(0);
return MathAddBloc._(x,y, addxy);
}
MathAddBloc._(this.x, this.y, this.addxy);
void dispose() {
x.close();
y.close();
}
}发布于 2018-12-20 22:00:06
我认为您需要combineLatest2方法。
你可能也想看看this video,我发现它在做类似的事情时非常有用。
https://stackoverflow.com/questions/53869589
复制相似问题