RxJavar用什么操作符可以使数据每隔一段时间取出一个
认证0级讲师
Saya terlalu malas untuk mengusahakan persekitaran Java, jadi saya akan memberikan contoh JavaScript kepada anda. Anda boleh mengikutinya dan menukarnya kepada 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();
Hanya sesuatu untuk ditambahkan
interval(500).take(1) boleh digantikan dengan timer(500)
interval(500).take(1)
timer(500)
atau concatMap()map().concat()
concatMap()
map().concat()
]
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));//获取数据后的处理方法
Jika kaedah mendapatkan objek adalah kaedah pelaksanaan yang pantas, flatMap juga boleh digantikan dengan peta dan ditukar kepada
.map(i->getData(i.intValue()))//获取数据
Saya terlalu malas untuk mengusahakan persekitaran Java, jadi saya akan memberikan contoh JavaScript kepada anda. Anda boleh mengikutinya dan menukarnya kepada Java
Hanya sesuatu untuk ditambahkan
Gunakaninterval(500).take(1)
boleh digantikan dengantimer(500)
atau
concatMap()
map().concat()
Jika kaedah mendapatkan objek adalah kaedah pelaksanaan yang pantas, flatMap juga boleh digantikan dengan peta dan ditukar kepada