从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) 
    } 
} 
+1

谢谢!我希望能有更少的“管理费用”,但似乎可以管理。 – beseder