有两个可观测值:a和b。我想订阅第二个可观测(b)之后,第一个可观测(a)已经启动(即已经产生了非常第一个onNext事件)。
我试过了
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)但我意识到这是一种糟糕的做法,而不是一条路可走。
发布于 2020-01-09 11:17:11
这是一个简单的flatMap
let c = a.flatMap { _ in b }您可能希望在.take(1)之前添加一个flatMap,或者查看flatMap的不同品种,看看哪一个适合您的用例。最好在b闭包中生成可观察到的flatMap,而不是像上面那样传递它。
https://medium.com/@danielt1263/rxswifts-many-faces-of-flatmap-5764e6c2018c
https://stackoverflow.com/questions/59661260
复制相似问题