Используйте fromIterable
и concatMap
:
Observable.fromIterable(userIds)
.concatMap(userId ->
UserService.getUser(userId).subscribeOn(Schedulers.io())
)
.toList()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(users -> callback.onUsersLoaded(users), error -> { /* report */ });