我有两个流,当第一个流中有新数据时,我想将数据放在第二个流中。
我有我的类A,在构造函数中,我将整数1放入流a
中,并收听此流,当有新数据时,我将整数4放入流{{1}中}。
b
使用该流的小部件:
class A {
Stream<int> a = BehaviorSubject<int>();
Stream<int> b = BehaviorSubject<int>();
A() {
a = getDataA();
a.listen((data) {
b = getDataB();
});
}
getDataA() {
var _tmp = BehaviorSubject<int>();
_tmp.add(1);
return _tmp.stream;
}
getDataB() {
var _tmp = BehaviorSubject<int>();
_tmp.add(4);
return _tmp.stream;
}
}
窗口小部件显示-1,而不是4。
答案 0 :(得分:1)
您实际上并不是在更新流,而是每次都创建一个新流。
相反,请这样做:
class A {
Stream<int> a = BehaviorSubject<int>();
Stream<int> b = BehaviorSubject<int>();
A() {
a.listen((data) {
b.sink.add(data);
});
}
}