具有异步等待回调的列表中的RxJava
谢谢你@Geoffrey Marizy 答复: 有关ConcatMap的更多信息,请向操作员咨询。有关此主题的完整文章: 将您的请求包装为可观察,然后将其作为参数传递给concatMap:具有异步等待回调的列表中的RxJava,java,rx-java,observable,rx-java2,Java,Rx Java,Observable,Rx Java2,谢谢你@Geoffrey Marizy 答复: 有关ConcatMap的更多信息,请向操作员咨询。有关此主题的完整文章: 将您的请求包装为可观察,然后将其作为参数传递给concatMap: for (String id : ids) { getMessage(id, new urlGenCallback() { @Override public void urlAndToken(String url, String token, String idx) {
for (String id : ids) {
getMessage(id, new urlGenCallback() {
@Override
public void urlAndToken(String url, String token, String idx) {
}
});
}
Observable.fromArray(ids.toArray(新字符串[ids.size()]))
.concatMap(s->{
返回Observable.create(newobservableOnSubscribe(){
@凌驾
public void subscribe(@NonNull observeiemitter e)引发异常{
getMessage,新的urlGenCallback(){
@凌驾
公共无效urlAndToken(字符串url、字符串标记、字符串id){
e、 onNext(“……”);
e、 onComplete();
}
});
}
});
}).订阅(新消费者){
@凌驾
public void accept(@NonNull String s)引发异常{
//所有其他代码都在这里
}
});
将您的答案作为答案,而不是问题的编辑。既然问题已经解决,那么做事情的方法就是把解决问题的答案标记为“已接受”
Observable.fromArray(ids.toArray(new String[ids.size()])).subscribe(new Consumer<String>() {
@Override
public void accept(@NonNull String s) throws Exception {
}
});
for (String id : ids) {
getMessage(id, new urlGenCallback() {
@Override
public void urlAndToken(String url, String token, String idx) {
}
});
}
Observable.fromArray(ids.toArray(new String[ids.size()])).concatMap(/* your request returning an Observable */)
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
}
});