Android 如何将这个RxJava可观测值转换为每200ms发出一次结果?
我可以观察到:Android 如何将这个RxJava可观测值转换为每200ms发出一次结果?,android,rx-java,reactive-programming,Android,Rx Java,Reactive Programming,我可以观察到: Observable<String> concatenatedSets = Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21"); concatenatedSets.flatMap(s -> Observable.from(s.split("/"))) .map(s -> Integer.valueOf(s))
Observable<String> concatenatedSets =
Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21");
concatenatedSets.flatMap(s -> Observable.from(s.split("/")))
.map(s -> Integer.valueOf(s))
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(i -> tvCounter.setText(String.valueOf(i)));
但是,我正在以另一种方式(使用just
)创建我的可观察对象,那么如何混合这两种功能(just
和interval
),或者如何实现两次发射之间200 ms的暂停
PS:刚刚尝试了
延迟
-在我提供的时间之前,它将整个执行延迟了一次zip可能是答案,但它非常混乱,所以我如何压缩我的可观测值和区间值?observable-observable=observable.just(“1/5/8”、“1/9/11/58/16/”、“9/15/56/49/21”)
Observable<Integer> observable = Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21")
.flatMap(s -> Observable.from(s.split("/")))
.map(s -> Integer.valueOf(s));
Observable<Integer> zippedObservable = Observable.zip(
observable,
Observable.interval(100, TimeUnit.MILLISECONDS),
(number, interval) -> number);
zippedObservable
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(i -> tvCounter.setText(String.valueOf(i)));
.flatMap(s->Observable.from(s.split(“/”))
.map->Integer.valueOf(s));
Observable zippedObservable=obbservable.zip(
可见的,
可观察的时间间隔(100,时间单位毫秒),
(编号、间隔)->编号);
可观察的
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(i->tvCounter.setText(String.valueOf(i));
可观察的可观察的=可观察的。只是(“1/5/8”,“1/9/11/58/16/”,“9/15/56/49/21”)
.flatMap(s->Observable.from(s.split(“/”))
.map->Integer.valueOf(s));
Observable zippedObservable=obbservable.zip(
可见的,
可观察的时间间隔(100,时间单位毫秒),
(编号、间隔)->编号);
可观察的
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(i->tvCounter.setText(String.valueOf(i));
您是否尝试了延迟运算符?或者这只是尝试了延迟
——在我提供的时间之前,它将整体执行延迟了一次zip
可能是答案,但它非常混乱,因此如何压缩可观测值和区间值?首先看一下自定义运算符。忘了注意到:)谢谢,如果我找不到使用zip
的方法,我将使用此自定义运算符作为最后手段。您是否尝试了延迟运算符?或者这只是尝试了延迟
——在我提供的时间之前,它将整体执行延迟了一次zip
可能是答案,但它非常混乱,因此如何压缩可观测值和区间值?首先看一下自定义运算符。忘了注意到:)谢谢,如果我找不到使用zip
的方法,我将使用此自定义运算符作为最后手段,谢谢!.zip
中的函数参数做什么?该函数从两个可观察对象中获取两个项,并返回一个将由zip可观察对象执行的项。这是文件:谢谢!.zip
中的函数参数做什么?该函数从两个可观察对象中获取两个项,并返回一个将由zip可观察对象执行的项。以下是文件:
Observable<Integer> observable = Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21")
.flatMap(s -> Observable.from(s.split("/")))
.map(s -> Integer.valueOf(s));
Observable<Integer> zippedObservable = Observable.zip(
observable,
Observable.interval(100, TimeUnit.MILLISECONDS),
(number, interval) -> number);
zippedObservable
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(i -> tvCounter.setText(String.valueOf(i)));