使用改造和rxjava进行链式http调用

时间:2016-03-23 20:01:18

标签: android reactive-programming

我有一个电话要求获得一份团队清单。每个团队都有一个id,让我用theids ID提出新的请求。

示例:团队

{
    "id": 1
    "name": "test",
}

示例:用户

{
    "name": "user1",
    "lvl": 42
}

一个团队由多个用户组成。

我创建了这些模型。我的第一个电话给了我一个团队和foreach团队的清单,我需要了解用户。所以这是我的代码改造和rxjava。

mTeamApi.teams(userId)
                .subscribeOn(Schedulers.newThread())
                .flatMap(new Func1<TeamTop, Observable<Team>>() {
                    @Override
                    public Observable<Team> call(TeamTop teamTop) {
                        return Observable.from(teamTop.getTeams());
                    }
                })
                .flatMap(new Func1<Team, Observable<MemberTop>>() {
                    @Override
                    public Observable<MemberTop> call(Team team) {
                        return mTeamApi.usersOfTeam(team.getId());
                    }
                })
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<MemberTop>() {
                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                        Utils.manageWsError(e, callback);
                    }

                    @Override
                    public void onNext(MemberTop data) {
                        callback.showMembers(data.getUsers());
                    }
                });

结果为我提供了所有用户的列表,但我想在团队对象中添加一个字段,例如'用户'和foreach 团队用户填写此字段。所以我的预期结果是一个团队列表

如果你有解决方案,你知道该怎么做:)

0 个答案:

没有答案