在将可观察数据绑定到另一个观察者之前,先对其进行拦截

时间:2019-07-12 21:28:18

标签: rx-swift swift5

我有一个可观察的物体,发出的数据看起来像这样:

$element

因此,当我从可观察的对象接收AlertData时,我将其直接绑定到另一个观察者,效果很好。但是在将它绑定到另一个观察者之前,我想获取' actionStream '并从中获取事件。

所以,这就是我发出AlertData的方式:

$attrs

这是接收部分:

struct AlertData {
    let name: String
    let actionStream: PublishSubject<Void>
}

但是在将alertStream绑定到anotherObserver之前,我想要位于AlertData内部的actionStream并接收从其发出的任何事件。正确的做法是什么?

1 个答案:

答案 0 :(得分:1)

let actionStream = alertStream
    .flatMap { $0.actionStream.asObservable() }

您可能实际上并不想专门使用flatMap(用作平面地图合并)。查看flatMap的变体,看看哪种最适合您的特定情况:RxSwift’s Many Faces of FlatMap