[英]RxSwift observe array change only when appended new element
有沒有辦法只在附加新元素時訂閱數組更改?
所以我希望只有在追加新元素時才執行以下閉包。
array.asObservable().subscribe(onNext: { array in
}).disposed(by: self.bag)
例如,如果從該數組中刪除了一個元素,我不希望執行此閉包。
編輯:
有沒有辦法在閉包中只有新附加的元素? 在我的情況下,我追加各種長度的子序列,所以我不能只看到閉包內數組的最后一個元素。
也許這樣的事情
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
在這種情況下,您應該使用Variable進行辭職並使用Subjects。 我認為,您的要求應符合PublishSubject:
let subjectArray = PublishSubject<[Int]>([])
array.asObservable().subscribe(onNext: {
print($0)
}).disposed(by: disposeBag)
向subjectArray添加新元素時,只會打印新元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.