RxJavar用什么操作符可以使数据每隔一段时间取出一个

发布于 2022-09-04 03:13:45 字数 35 浏览 10 评论 0

RxJavar用什么操作符可以使数据每隔一段时间取出一个

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陪你到最终 2022-09-11 03:13:46

懒得去搞 Java 的环境,给你个 JavaScript 的示例,你照着改成 Java 的吧

const Rx = require("rx");

Rx.Observable.range(0, 10)
    .map(n => 3 + n * 10)
    .concatMap((x, i) => {
        return Rx.Observable.interval(500)
            .take(1)
            .map(() => `${x}:${i}`);
    })
    .do(console.log)
    .subscribe();

补充一下

interval(500).take(1) 可以用 timer(500) 代替

使用 concatMap() 或者 map().concat()

clipboard.png]

心不设防 2022-09-11 03:13:46
private Object getData(int index) {
    //TODO 获取第n个数据
}


Observable.interval(1, TimeUnit.SECONDS)//每秒执行一次
          .flatMap(i->Observable.fromCallable(()->getData(i.intValue())))//获取数据
          .subscribe(s->System.out.println(s));//获取数据后的处理方法

如果获取对象的方法是快速执行的方法,flatMap也可以使用map来代替,改成

          .map(i->getData(i.intValue()))//获取数据
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文