Skip to content

Instantly share code, notes, and snippets.

@rajajawahar
Last active March 15, 2018 12:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rajajawahar/54995d4fcce9cf0262e8bb6bbf62a4aa to your computer and use it in GitHub Desktop.
Save rajajawahar/54995d4fcce9cf0262e8bb6bbf62a4aa to your computer and use it in GitHub Desktop.
class ConcatOperator {
var disposeBag : DisposeBag = DisposeBag()
func getEmployeeData(){
getEmployeeFromCacheAndFallBackToOnline()
.subscribe(onNext: { (goodReceiptPOList) in
print(goodReceiptPOList.count)
}, onError: {
(error) in
}, onCompleted: {
}).disposed(by: disposeBag)
}
func getEmployeeFromCache() -> Observable<[Employee]> {
return Observable.create({ (observer) -> Disposable in
let employeeArray = // Getting Data from Local
observer.onNext(employeeArray)
observer.onCompleted()
return Disposables.create()
})
}
func getEmployeeFromOnline() -> Observable<[Employee]> {
return Observable.create({ (observer) -> Disposable in
let employeeArray = // Getting Data from Online
observer.onNext(employeeArray)
observer.onCompleted()
return Disposables.create()
})
}
func getEmployeeFromCacheAndFallBackToOnline() -> Observable<[Employee]> {
return Observable.concat(getEmployeeFromCache(),
getEmployeeFromOnline()).single({ (employeeList) -> Bool in
return employeeList.count > 0
}).take(1)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment