如何使 Observable 在 1 秒的时间间隔后发出字符

2024-01-10

我刚刚开始使用 RxJava/android,为了练习和入门,我想让 observable 每 1 秒发出字符串中的字符,我该怎么做?这是我到目前为止所尝试过的,它只是立即发出字符串:

Observable<String> myObservable = Observable.interval(5000L, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .just("Hello");

我想要像这样先发出 H 后 1 秒发出 E 等等


使用以下命令将字符串“hello”拆分为字母“h”、“e”、...“o”flatMap().

new ArrayList<>(Arrays.asList(string.split(""))))结构体List<String> letters and Observable.fromIterable(letters)将每个字母发送到下游。

Then zipWith()压缩两个 Observables,一个是字母,另一个是 1 秒时间。

public static void main(String[] args) throws InterruptedException {

    Observable.just("Hello")
            .flatMap(string -> Observable.fromIterable(new ArrayList<>(Arrays.asList(string.split("")))))
            .zipWith(Observable.interval(0, 1, TimeUnit.SECONDS), (letter, time) -> letter)
            .subscribe(System.out::println);

    Thread.sleep(5000);
}

Prints:

H
e
l
l
o

Process finished with exit code 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Observable 在 1 秒的时间间隔后发出字符 的相关文章

随机推荐