有没有办法只在追加新元素时才订阅数组更改?
因此,我希望下面的闭包仅在附加新元素时执行。
array.asObservable().subscribe(onNext: { array in
}).disposed(by: self.bag)
例如,如果从这个数组中删除了一个元素,我不希望执行这个闭包。
编辑:
有没有办法在闭包中只添加新的元素?在我的例子中,我附加了不同长度的子序列,所以我不能只查看闭包中数组的最后一个元素。
发布于 2018-06-10 07:47:31
也许是这样的
let array = Variable<[Int]>([])
array.asObservable().distinctUntilChanged { $0.count > $1.count}.subscribe(onNext: {
print($0)
}).disposed(by: disposeBag)
array.value.append(1) //called
array.value.append(2) //called
array.value.remove(at: 0) //not called
array.value.append(3) //called
发布于 2018-08-06 18:01:33
在这种情况下,您应该使用变量和主题来辞职。我认为,您的需求应该满足PublishSubject:
let subjectArray = PublishSubject<[Int]>([])
array.asObservable().subscribe(onNext: {
print($0)
}).disposed(by: disposeBag)
当您向subjectArray添加新元素时,将只打印该新元素。
https://stackoverflow.com/questions/50776673
复制相似问题