Android RxJava:基于条件的完整流
我有一个关于Observable的,当一些数据来自一个可观察的连接时,它会发出项目:Android RxJava:基于条件的完整流,android,rx-java2,Android,Rx Java2,我有一个关于Observable的,当一些数据来自一个可观察的连接时,它会发出项目: public interface CommunicationController { Flowable<DataContainer> dataReceived(); } b。我收到一条特定类型的消息(再次使用filter操作符) 如何将这两个可观察的组合成一个? 另外,两个可观测对象中只有一个会发射一个项目 要组合两个观察值,可以使用运算符zipWith。例如: Observable&l
public interface CommunicationController {
Flowable<DataContainer> dataReceived();
}
b。我收到一条特定类型的消息(再次使用filter
操作符)
如何将这两个可观察的组合成一个?
另外,两个可观测对象中只有一个会发射一个项目 要组合两个观察值,可以使用运算符zipWith。例如:
Observable<AppMetaDataBiz> appMetaDataObservable = this.mAppRepository.getAppMetaData();
Observable<ProductBiz> productDetailsObservable =
this.mProductRepository.getProductDetails(this.productId);
return productDetailsObservable.zipWith(appMetaDataObservable,
((jmProduct, jmAppMetaData) -> {
//TODO: implement business logic
return jmProduct;
}));
Observable-appMetaDataObservable=this.mAppRepository.getAppMetaData();
可观测产品详细信息可观测=
this.mpProductRepository.getProductDetails(this.productId);
返回ProductDetailsBServable.zipWith(appMetaDataObservable,
((jmProduct,jmAppMetaData)->{
//TODO:实现业务逻辑
退货产品;
}));
要组合两个观察值,可以使用运算符zipWith。例如:
Observable<AppMetaDataBiz> appMetaDataObservable = this.mAppRepository.getAppMetaData();
Observable<ProductBiz> productDetailsObservable =
this.mProductRepository.getProductDetails(this.productId);
return productDetailsObservable.zipWith(appMetaDataObservable,
((jmProduct, jmAppMetaData) -> {
//TODO: implement business logic
return jmProduct;
}));
Observable-appMetaDataObservable=this.mAppRepository.getAppMetaData();
可观测产品详细信息可观测=
this.mpProductRepository.getProductDetails(this.productId);
返回ProductDetailsBServable.zipWith(appMetaDataObservable,
((jmProduct,jmAppMetaData)->{
//TODO:实现业务逻辑
退货产品;
}));
我认为你的答案是可以观察到的。合并:
根据文档,这并不是等待每一个可观察到的东西发出
一个选项是使用合并和删除,直到:
科特林代码:
val stopStream = Observable.merge(...)
streamThatWillRun = streamThatWillRun.takeUntil(stopStream)
我认为你的答案是显而易见的。合并:
根据文档,这并不是等待每一个可观察到的东西发出
一个选项是使用合并和删除,直到:
科特林代码:
val stopStream = Observable.merge(...)
streamThatWillRun = streamThatWillRun.takeUntil(stopStream)
嗯,zipWith
不能解决我的问题,因为如果两个Observable
s都发出一个事件,它只会发出一个事件。在我的例子中,更重要的是,两个观测值中只有一个会发射一个项目。我应该在问题中澄清这一点。嗯,我可能会明白你的想法。如果我是对的,CombineTest可能会帮助您:嗯,zipWith
不会解决我的问题,因为如果两个Observable
s都发出一个事件,它只会发出一个事件。在我的例子中,更重要的是,两个观测值中只有一个会发射一个项目。我应该在问题中澄清这一点。嗯,我可能会明白你的想法。如果我是对的,CombineTest可能会帮助您: