diff --git a/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java b/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java index a16ce39..5c82a05 100644 --- a/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java +++ b/src/main/java/ru/touchin/roboswag/core/observables/storable/Storable.java @@ -95,7 +95,7 @@ public class Storable { final ObserveStrategy nonNullObserveStrategy = observeStrategy != null ? observeStrategy : getDefaultGetStrategy(); final Observable storeValueObservable = createStoreValueObservable(nonNullObserveStrategy, migration, defaultValue, storeScheduler); - valueObservable = createValueObservable(storeValueObservable, nonNullObserveStrategy); + valueObservable = createValueObservable(storeValueObservable, nonNullObserveStrategy, storeScheduler); } @NonNull @@ -156,7 +156,8 @@ public class Storable { @NonNull private Observable createValueObservable(@NonNull final Observable storeValueObservable, - @NonNull final ObserveStrategy observeStrategy) { + @NonNull final ObserveStrategy observeStrategy, + @Nullable final Scheduler storeScheduler) { final Observable result = storeValueObservable .map(storeObject -> { try { @@ -169,7 +170,8 @@ public class Storable { STORABLE_LC_GROUP.assertion(throwable); throw OnErrorThrowable.from(throwable); } - }); + }) + .subscribeOn(storeScheduler != null ? storeScheduler : Schedulers.computation()); return observeStrategy == ObserveStrategy.CACHE_ACTUAL_VALUE ? result : result.replay(1).refCount(); }