rx android - Best way to call serial , batch wise requests in Rx Java -


i'm new rxjava. currently, i'm trying out samples , converting existing codes rx. have existing api, takes large list of objects, since server takes time process large number of inputs , due timeout issues i'm sending inputs api in batch wise. if have 300 objects, pass batches of 10 objects. in, first call api first 10 items, waiting response, once received response, take next 10, till reach 300 items. righ using many nested callbacks , flags keep track of items , results. need convert rx java.

i tried buffer operator , working expected. wanted know there better solution or exact way do. code given below.

observable.range(1, 300)             .buffer(10)             .flatmap((integers) -> mockserverresult(integers))             .subscribeon(schedulers.io())             .observeon(androidschedulers.mainthread())             .subscribe(new disposableobserver<string>() {                 @override                 public void onnext(@nonnull string s) {                     log.d(tag, "onnext: " + s);                 }                  @override                 public void onerror(@nonnull throwable e) {                  }                  @override                 public void oncomplete() {                  }             });   }  public observable<string> mockserverresult(list<integer> integers) {     stringbuilder stringbuilder = new stringbuilder("server results ");     (integer integer : integers) {         stringbuilder.append(integer.tostring()).append(",");     }     try {         thread.sleep(1000);     } catch (interruptedexception e) {         e.printstacktrace();     }     return observable.just(stringbuilder.tostring()); } 


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -