见下面的代码。
class ViewController4: UIViewController {
var disposeBag = DisposeBag()
let v = Variable(0)
override func viewDidLoad() {
super.viewDidLoad()
v.asObservable()
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
v.value = 1
}
}
当它运行时,它将打印
0
1
但是,我不希望它在0
上运行,或者说0
只是用于启动v
的值。我能这样做吗?或者我必须在我使用它的时间点推迟代码?
答案 0 :(得分:31)
您可以使用运算符.skip
来抑制N个第一个元素已发出。所以在你的情况下,skip(1)
会压缩init值。
v.asObservable().skip(1)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
v.value = 1
//Output : 1
v.value = 2
v.value = 3
//Output : 1 2 3