Flatmap我可以观察到主题

时间:2018-02-04 21:42:22

标签: rx-java2

这个问题有点棘手。

我正在尝试实现observable接口,在其中我需要在observable遇到一些情况后开始侦听另一个publicsubject,所以我写了这样的代码:

withCurrentDirectory

只有在restAPI调用成功完成后才能保证订阅开始订阅发布主体吗?

1 个答案:

答案 0 :(得分:1)

当有来自上游的值时调用flatMap' Function回调,在这种情况下是restAPI.call()

但是,请注意,迟到PublishSubject的映射会导致项目被遗漏。为避免此类问题,您可以考虑使用BehaviorSubject保留其收到的最后一项,以便flatMap在订阅时立即发出。

此外,重复映射到相同的Subject可能会导致内存泄漏和项目重复。不幸的是,您必须完成Subject以释放它,但随后它将无法用于调度其他事件。 takeUntil可能会在这种情况下有所帮助。