Skip to content

Instantly share code, notes, and snippets.

@passsy
Created October 10, 2018 14:43
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 passsy/b202a143d80c80dfef5476ff47ab13f7 to your computer and use it in GitHub Desktop.
Save passsy/b202a143d80c80dfef5476ff47ab13f7 to your computer and use it in GitHub Desktop.
object Rx {
fun <T> delayFlowable(delay: Long, timeUnit: TimeUnit, scheduler: Scheduler = Schedulers.computation(),
block: () -> Flowable<T>): Flowable<T> {
return Completable.timer(delay, timeUnit, scheduler).andThen(Flowable.defer { block() })
}
fun <T> delayObservable(delay: Long, timeUnit: TimeUnit, scheduler: Scheduler = Schedulers.computation(),
block: () -> Observable<T>): Observable<T> {
return Completable.timer(delay, timeUnit, scheduler).andThen(Observable.defer { block() })
}
fun <T> delaySingle(delay: Long, timeUnit: TimeUnit,
scheduler: Scheduler = Schedulers.computation(), block: () -> Single<T>): Single<T> {
return Completable.timer(delay, timeUnit, scheduler).andThen(Single.defer { block() })
}
fun <T> delayMaybe(delay: Long, timeUnit: TimeUnit, scheduler: Scheduler = Schedulers.computation(),
block: () -> Maybe<T>): Maybe<T> {
return Completable.timer(delay, timeUnit, scheduler).andThen(Maybe.defer { block() })
}
fun delayCompletable(delay: Long, timeUnit: TimeUnit, scheduler: Scheduler = Schedulers.computation(),
block: () -> Completable): Completable {
return Completable.timer(delay, timeUnit, scheduler).andThen(Completable.defer { block() })
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment