Suppose we are getting a generic Object
from SharedPrefs
using .create()
:
return Observable.create(subscriber -> {
String json = sharedPreferences.getString(key, "");
T myClass = gson.fromJson(json, generic);
subscriber.onNext(myClass);
subscriber.onComplete();
});
and using .fromCallable()
:
return Observable.fromCallable(() -> {
String json = sharedPreferences.getString(key, "");
return gson.fromJson(json, generic);
});
Is there any Difference if we call onComplete()
immediately after first emmit from Observable.create()
and using Observable.fromCallable()
? If so, what are the pros/cons
?
Observable.create
let's you emit multiple items while fromCallable
emits only a single item.
You should use the latter as it is more expressive about the intent of having a single element sequence and has a slighly lower overhead.
Drawback is that you can't have an async single element source with it whereas create
let's you delay the call to onNext
to a later point in time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With