有两个观测值: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)
但是我意识到这是一种不好的做法,不是可行的方法。
这是简单的flatMap
:
let c = a.flatMap { _ in b }
[您可能想在flatMap之前添加.take(1)
或查看flatMap的不同种类,然后查看哪个适合您的用例。并且最好是在flatMap闭包内部生成可观察到的b
,而不是像上面那样传递给它。
https://medium.com/@danielt1263/rxswifts-many-faces-of-flatmap-5764e6c2018c