2017-06-07 210 views
0
List<String> listExample = Arrays.asList("one", "two", "three"); 

的认为我有字符串的列表,并使用RxJava(Observable.fromArrayRxJava与异步等待回调

Observable.fromArray(ids.toArray(new String[ids.size()])).subscribe(new Consumer<String>() { 
    @Override 
    public void accept(@NonNull String s) throws Exception { 

    } 
}); 

想到这里每串有一个异步回调这里一次,我收到回调它应该移动到下一个字符串。是否有可能使用rxjava?

这是我目前拥有的代码,它不会等到回调正确!

for (String id : ids) { 
    getMessage(id, new urlGenCallback() { 
     @Override 
     public void urlAndToken(String url, String token, String idx) { 

     } 
    }); 
} 

谢谢@Geoffrey Marizy

答:Check Below 对于更多信息关于ConcatMap Visit Here

+0

把你回答一个答案,而不是你的问题的编辑。或者改善帮助你到达那里的问题。 – tynn

+0

由于问题解决了,堆栈溢出处理方式是标记答案,将其解决为“接受” –

回答

0
Observable.fromArray(ids.toArray(new String[ids.size()])) 
     .concatMap(s -> { 
      return Observable.create(new ObservableOnSubscribe<String>() { 
       @Override 
       public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception { 
        getMessage(s, new urlGenCallback() { 
         @Override 
         public void urlAndToken(String url, String token, String id) { 
          e.onNext("......"); 
          e.onComplete(); 
         } 
        }); 
       } 
      }); 
     }).subscribe(new Consumer<String>() { 
    @Override 
    public void accept(@NonNull String s) throws Exception { 
     //All other code goes here 
    } 
});