这是我的用例:
我有两个不同的Observables
:
Observable<MobileAdEvent> adEventStream;
Observable<Color> colorStream;
当这两个中的一个发出事件时,我需要接收通知。 zipWith
对我不起作用,因为它一直等到两个流都有要发送的事件。 mergeWith
似乎也不起作用,因为它期望两个流都来自同一类型。
任何提示将不胜感激,
谢谢。
答案 0 :(得分:1)
您尝试过Observable.race
吗?完美的通知:
给出两个或多个源流,仅从这些流中的第一个流中发出所有项目,以发出项目或通知。
new Observable.race([
new Observable.timer(1, new Duration(days: 1)),
new Observable.timer(2, new Duration(days: 2)),
new Observable.timer(3, new Duration(seconds: 1))
]).listen(print); // prints 3
在此处https://pub.dev/documentation/rxdart/latest/rx/Observable/Observable.race.html
了解更多信息答案 1 :(得分:0)
您想要的是combineLatest
运算符
Observable<Foo> foo;
Observable<Bar> bar;
final output = Observable.combineLatest2(foo, bar, (Foo foo, Bar bar) {
// TODO: somehow merge them
});