如下所示,我正在创建
Observables
接线员。我希望代码能等5秒钟
System.out.println
从要打印的观察者。
doOnNext
doOnNext公司
即使在5秒之后。
代码
:
public static void main(String[] args) {
Observable<List<Person>> observables = Observable.create(e-> {
for(List<Person> p : Main.getPersons()) {
e.onNext(p);
}
e.onComplete();
});
observables
//.subscribeOn(Schedulers.newThread())//newThread
.flatMap(p->Main.toObservable(p.get(0).getName()))
.doOnNext(p-> System.out.println(p.length()) )
.map(p->p+"..STRING")
//.delay(5, TimeUnit.SECONDS)
//.interval(0, 5, TimeUnit.SECONDS)
.observeOn(Schedulers.io())
.subscribe(new Observer() {
@Override
public void onComplete() {
// TODO Auto-generated method stub
System.out.println("onCompleted");
}
@Override
public void onError(Throwable arg0) {
// TODO Auto-generated method stub
}
@Override
public void onNext(Object arg0) {
// TODO Auto-generated method stub
System.out.println("onNextFromObserver: " + arg0);
}
@Override
public void onSubscribe(Disposable arg0) {
// TODO Auto-generated method stub
}
});
}
private static <T> Observable<T> toObservable(T s) {
return Observable.just(s);
}
private static List<List<Person>> getPersons() {
return Arrays.asList(
Arrays.asList(new Person("Sanna1", 59, "EGY"), new Person("Sanna2", 59, "EGY"), new Person("Sanna3", 59, "EGY")),
Arrays.asList(new Person("Mohamed1", 59, "EGY"), new Person("Mohamed2", 59, "EGY")),
Arrays.asList(new Person("Ahmed1", 44, "QTR"), new Person("Ahmed2", 44, "QTR"), new Person("Ahmed3", 44, "QTR")),
Arrays.asList(new Person("Fatma", 29, "KSA")),
Arrays.asList(new Person("Lobna", 24, "EGY"))
);
}