I have Observable
what emit some String
:
List<String> list = // size this list is 5
Observable o1 = Observable.fromArray(list.toArray());
and another one what emit one object per 10 second:
Observable intervalObservable = Observable.interval(10, TimeUnit.SECONDS);
I want to create Observable what every 10 second will emit every item from o1
, so I did:
Observable change2tervalToString = intervalObservable.map(new Function() {
@Override
public Object apply(Object o) throws Exception {
return "STARTER!";
}
});
Observable per10sec = o1.startWith(change2tervalToString);
If I .subscribe()
to per10sec
it doesn't emit something like:
"STARTER", "ITEM_FROM_LIST1", "ITEM_FROM_LIST2", "ITEM_FROM_LIST3"...
but only (every 10 second):
"STARTER"
I want to achive something like this:
"STARTER", "ITEM_FROM_LIST1", "ITEM_FROM_LIST2", "ITEM_FROM_LIST3"...
....
....
10 sec
....
....
"STARTER", "ITEM_FROM_LIST1", "ITEM_FROM_LIST2", "ITEM_FROM_LIST3"...
....
....
....
How about this:
Observable.interval(10, TimeUnit.SECONDS).flatMap(new Function<Long, ObservableSource<String>>() {
@Override
public ObservableSource<String> apply(Long aLong) throws Exception {
return Observable.fromIterable(list);
}
});