Rx Swift 简单定时器不工作
Rx Swift simple timer not working
我在 swift 3
中有这个 RxSwift 代码
let bag:DisposeBag = DisposeBag()
var sig:Observable<Int>!
sig = Observable<Int>.interval(1.0, scheduler: MainScheduler.instance)
sig.subscribe(onNext: { (milsec) in
print("Mil: \(milsec)")
}).addDisposableTo(bag)
i 运行 点击按钮时出现此代码,但它不会在控制台上打印任何内容。
一旦超出范围,DisposeBag
将处理您的订阅。在这种情况下,它会在调用订阅之后立即出现,它解释了为什么您看不到任何打印到控制台的原因。
将 dispose bag 的定义移至 class 创建订阅,一切正常。
class MyViewController: UIViewController {
let bag:DisposeBag = DisposeBag()
dynamic func onButtonTapped() {
var sig:Observable<Int>!
sig = Observable<Int>.interval(1.0, scheduler: MainScheduler.instance)
sig.subscribe(onNext: { (sec) in
print("Sec: \(sec)")
}).addDisposableTo(bag)
}
}
附带说明一下,interval
需要以秒为单位的时间间隔,因此它只会每秒钟滴答一次,而不是毫秒。
我在 swift 3
中有这个 RxSwift 代码let bag:DisposeBag = DisposeBag()
var sig:Observable<Int>!
sig = Observable<Int>.interval(1.0, scheduler: MainScheduler.instance)
sig.subscribe(onNext: { (milsec) in
print("Mil: \(milsec)")
}).addDisposableTo(bag)
i 运行 点击按钮时出现此代码,但它不会在控制台上打印任何内容。
DisposeBag
将处理您的订阅。在这种情况下,它会在调用订阅之后立即出现,它解释了为什么您看不到任何打印到控制台的原因。
将 dispose bag 的定义移至 class 创建订阅,一切正常。
class MyViewController: UIViewController {
let bag:DisposeBag = DisposeBag()
dynamic func onButtonTapped() {
var sig:Observable<Int>!
sig = Observable<Int>.interval(1.0, scheduler: MainScheduler.instance)
sig.subscribe(onNext: { (sec) in
print("Sec: \(sec)")
}).addDisposableTo(bag)
}
}
附带说明一下,interval
需要以秒为单位的时间间隔,因此它只会每秒钟滴答一次,而不是毫秒。