RxJava - बफरिंग
बफरिंग ऑपरेटर एक ऑब्जर्वबल द्वारा उत्सर्जित वस्तुओं को एक सूची या बंडलों में इकट्ठा करने और उन बंडलों को वस्तुओं के बजाय बाहर निकालने की अनुमति देता है। नीचे दिए गए उदाहरण में, हमने 9 वस्तुओं का उत्सर्जन करने के लिए एक ऑब्जर्वेबल बनाया है और बफरिंग का उपयोग करते हुए, 3 वस्तुओं को एक साथ उत्सर्जित किया जाएगा।
बफरिंग उदाहरण
C: \> RxJava, अपनी पसंद के किसी भी संपादक का उपयोग करके निम्नलिखित जावा प्रोग्राम बनाएं।
ObservableTester.java
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class ObservableTester {
public static void main(String[] args) throws InterruptedException {
Observable<Integer> observable = Observable.just(1, 2, 3, 4,
5, 6, 7, 8, 9);
observable.subscribeOn(Schedulers.io())
.delay(2, TimeUnit.SECONDS, Schedulers.io())
.buffer(3)
.subscribe(new Observer<List<Integer>>() {
@Override
public void onSubscribe(Disposable d) {
System.out.println("Subscribed");
}
@Override
public void onNext(List<Integer> integers) {
System.out.println("onNext: ");
for (Integer value : integers) {
System.out.println(value);
}
}
@Override
public void onError(Throwable e) {
System.out.println("Error");
}
@Override
public void onComplete() {
System.out.println("Done! ");
}
});
Thread.sleep(3000);
}
}
परिणाम सत्यापित करें
का उपयोग कर वर्ग संकलित करें javac संकलक निम्नानुसार है -
C:\RxJava>javac ObservableTester.java
अब वेधशाला चलाने के लिए निम्नानुसार है -
C:\RxJava>java ObservableTester
यह निम्नलिखित उत्पादन का उत्पादन करना चाहिए -
Subscribed
onNext:
1
2
3
onNext:
4
5
6
onNext:
7
8
9
Done!