我从RxSwift开始,来自ReactiveCocoa。我有一个概念性的问题。
假设我有一个值,我希望随着时间的推移观察,例如一个温度。因此,有许多情况和地点我订阅此值以对更改做出反应。没问题!
但是,当我只需要最新的值时,也有一些用例,例如:
if temperatue > 5 {
// do something
}
所以我只想对该值做出决定/操作,或者至少基于该值。这让我接近使用shareReplay observable。但即使我只想使用它一次,我还需要订阅该值吗?
或者这种做法是否错误?我将如何使用该用例(随时间变化的值与仅访问最后一次的值)?我需要消息来源,一个感冒吗?
答案 0 :(得分:2)
使用Variable
:
class SomeClass {
let temperature = Variable<Int>(50)
func doSomething() {
if temperature.value > 50 {
print("something")
}
}
func subscribeToTemperature() {
temperature.asObservable.subscribeNext { t in
print("Temperature now is \(t)")
}.addDisposableTo(bag)
}
func setTemperature() {
temperature.value = 20
}
func observeTemperature(t: Observable<Int>) {
t.bindTo(temperature).addDisposableTo(bag)
}
}