这个问题有点棘手。
我正在尝试实现observable接口,在其中我需要在observable遇到一些情况后开始侦听另一个publicsubject,所以我写了这样的代码:
withCurrentDirectory
只有在restAPI调用成功完成后才能保证订阅开始订阅发布主体吗?
答案 0 :(得分:1)
当有来自上游的值时调用flatMap
' Function
回调,在这种情况下是restAPI.call()
。
但是,请注意,迟到PublishSubject
的映射会导致项目被遗漏。为避免此类问题,您可以考虑使用BehaviorSubject
保留其收到的最后一项,以便flatMap
在订阅时立即发出。
此外,重复映射到相同的Subject
可能会导致内存泄漏和项目重复。不幸的是,您必须完成Subject
以释放它,但随后它将无法用于调度其他事件。 takeUntil
可能会在这种情况下有所帮助。