RxAndroid - Return 来自 flatMap 的数组列表

RxAndroid - Return an arraylist from flatMap

我刚刚开始研究 RxJava/RxAndroid 与 Retrofit 的结合。我喜欢 RxAndroid 提供的强大功能,但我被困在一个特定的地方,似乎无法找到解决方案。我基本上有一个 API,它接受一个用户并从 API 获取有关该用户的信息,虽然这很有效,但我想做的是而不是 returning 每个用户的信息单独 return 用户信息的数组列表。

 Observable.from(interestingUsers)  //3 users declared statically for test
              .flatMap(user -> gitHubService.getUserData(user))
              .observeOn(AndroidSchedulers.mainThread())
              .subscribe(gitHubUser -> Log.e("Log", "User data returned : " + gitHubUser.getName()));

上面的代码只记录了单个用户三次,我想要的是一个包含 3 个用户的列表 returned 作为一个结果。

我知道这可能是一件微不足道的事情,但我就是想不通。任何帮助将不胜感激。

Observable.toListObservable<T> 转换为 Observable<List<T>>:

Observable.from(interestingUsers)
    .flatMap(user -> gitHubService.getUserData(user))
    .toList()
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(users -> {
        for (final User user : users) {
            Log.e("Log", "User data returned : " + user.getName())
        }
    });