Rx swift 在另一个订阅触发后启动订阅
有两个可观察对象:Rx swift 在另一个订阅触发后启动订阅,rx-swift,Rx Swift,有两个可观察对象:a和b。我想在第一个可观察(a)触发(即生成第一个onNext事件)后订阅第二个可观察(b) 我试过了 b.skipUntil(a).subscribe(onNext:{ print("B: \($0)") }).disposed(by: _bag) 但是没有运气,因为b是一个冷冰冰的可见物。据我所知,它立即启动并被skipUntil(a)阻止 这种方法似乎有效: a.subscribe(onNext:{_ in //
a
和b
。我想在第一个可观察(a
)触发(即生成第一个onNext
事件)后订阅第二个可观察(b
)
我试过了
b.skipUntil(a).subscribe(onNext:{
print("B: \($0)")
}).disposed(by: _bag)
但是没有运气,因为b
是一个冷冰冰的可见物。据我所知,它立即启动并被skipUntil(a)
阻止
这种方法似乎有效:
a.subscribe(onNext:{_ in
// ... handle a ...
b.subscribe(onNext:{
print("B: \($0)")
}).disposed(by: self._bag)
}).disposed(by: _bag)
但我意识到这是一个糟糕的做法,不是一个好办法。这是一个简单的
平面图
let c = a.flatMap { _ in b }
您可能希望在平面图之前添加一个。取(1)
,或者查看不同种类的平面图,看看哪一个适合您的用例。最好是在flatMap闭包中生成可观察的b
,而不是像上面那样传递它
也许这个答案可以帮助你