Оберните подписку на ваш BehaviorSubject
в свой Observable
, который вызовет onCompleted
, когда содержимое вашего BehaviorSubject
изменится:
let array = BehaviorSubject<[Int]>(value: [])
var observable: Observable<Void> {
return Observable<Void>.create { observer in
// skip first element as BehaviorSubject repeats last value on subscription
array.skip(1).subscribe(onNext: { _ in
observer.onCompleted()
})
}
}
Затем используйте его следующим образом:
observable.subscribe(onCompleted: {
print("bump")
}).disposed(by: disposeBag)
array.onNext([1]) // now "bump" gets printed
array.onNext([1, 2])