RxJava2结合了Observable <list <>&gt;和可观察的

时间:2018-02-12 17:01:01

标签: rx-java2

我还在学习RxJava 2,而且我很难根据两个Observable来构建Observable<List<>>

目标是建立一个Observable<List<Schedule>>。 我有可观察量Observable<List<Channel>> getChannels()(=频道列表)和Observable<Schedule> getSchedule(long channelId)(=频道时间表)。

这是我当前的Observable,它不会发出onNext()

Observable<List<Schedule>> oSchedules = getChannels()
    .flatMapIterable(channel -> channel)
    .flatMap(c -> getSchedule(c.id()))
    .toList()
    .toObservable();

Observable<Schedule> getSchedule(long channelId) 
{
...
}

Observable<List<Channel>> getChannels() 
{
...
}

工作正常,并发出我的数据:

Observable<Schedule> oSchedule = getChannels()
        .flatMapIterable(d -> d)
        .flatMap(i -> getSchedule(i.id(), start, end));

修改

ToList()仅被称为Observable的onComplete,这就是为什么它没有工作。

1 个答案:

答案 0 :(得分:0)

ToList()仅被称为Observable的onComplete,这就是它无法正常工作的原因。感谢@akarnokd,这就是我最终的目标。

    getChannels()
            .take(1)
            .flatMapIterable(c -> c)
            .flatMap(channel -> getSchedule(channel.id(), start, end)
                    .take(1))
            .toList()
            .toObservable()