从Observable获取一个值
问题描述:
我从RxSwift开始,来自ReactiveCocoa。我有一个概念性问题。从Observable获取一个值
假设我有一个值,我想随着时间观察,例如,一个温度。所以有很多情况和地方我订阅这个值来对变化做出反应。没问题!
但也有使用情况下,当我需要的只是最新值例如为:
if temperatue > 5 {
// do something
}
所以我只想做对即价值决定/操作或至少基于该值。这促使我接近使用shareReplay可观察值。但即使我只想使用一次,我是否需要订阅该值?
或者这种方法是错误的吗?我将如何做这个用例(价值随着时间的推移而只访问最后一次的值)?我需要来源,一个热的感冒吗?
答
使用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)
}
}
谢谢!我希望能有更少的“管理费用”,但似乎可以管理。 – beseder