RXJava,如何异步执行两个可观察对象,运行 一个函数,一旦两者都完成,并获得两个线程之间的时间差?
RXJava, How to execute two observeables asynchronously, run a function once both have completed, and get the time difference between both threads?
我正在寻找一种优雅的方式来同时 运行 两个可观察对象,等待它们都完成(它们都从网络上获取数据)并且只有在它们都完成后才执行一个功能。
我还需要获取两个线程之间的时间差?在 RXJava 中有没有一种优雅的方法来做到这一点,特别是 android。或者我是否必须在两个可观察对象的 oncomplete 方法中设置一个全局计时器变量,然后才比较它们?
我的想法是将observables合并为一个,但我不确定如何获得时差?
您可以压缩两个来源的时间戳序列:
Observable<A> sourceA = ...
Observable<B> sourceB = ...
Observable.zip(sourceA.timestamp(), sourceB.timestamp(), (a, b) -> {
long timediff = a.time() - b.time();
A itemA = a.value();
B itemB = b.value();
return itemA + ", " + itemB;
})
.subscribe(...);
我正在寻找一种优雅的方式来同时 运行 两个可观察对象,等待它们都完成(它们都从网络上获取数据)并且只有在它们都完成后才执行一个功能。
我还需要获取两个线程之间的时间差?在 RXJava 中有没有一种优雅的方法来做到这一点,特别是 android。或者我是否必须在两个可观察对象的 oncomplete 方法中设置一个全局计时器变量,然后才比较它们?
我的想法是将observables合并为一个,但我不确定如何获得时差?
您可以压缩两个来源的时间戳序列:
Observable<A> sourceA = ...
Observable<B> sourceB = ...
Observable.zip(sourceA.timestamp(), sourceB.timestamp(), (a, b) -> {
long timediff = a.time() - b.time();
A itemA = a.value();
B itemB = b.value();
return itemA + ", " + itemB;
})
.subscribe(...);