Observable.fromCallable()
, tek bir işlevi Gözlemlenebilir hale getirmek için harikadır. Ancak, işlevin atlatabileceği kontrol edilen istisnaları nasıl ele alırsınız?Gözlemlenebilir bir istisna ile Observable.fromCallable() nasıl kullanılır?
Gördüğüm örneklerin çoğu, lambdas ve "just work" işlevini kullandı. Ama bunu lambda olmadan nasıl yaparsın? Örneğin, this great article aşağıda alıntı bakın:
Observable.fromCallable(() -> downloadFileFromNetwork());
Bu tek liner şimdi bu! Kontrol edilen istisnalarla ilgilenir, daha fazla tuhaf Observable.just() ve Observable.error() kod yürütmeyi erteleme gibi kolay bir şey için!
Observable.fromCallable(new Func0<File>() { @Override public File call() { return downloadFileFromNetwork(); } }
Ama eğer:
Ben gördüğüm diğer örneklere dayanarak, bir lambda ifadesi olmadan yukarıdaki gözlemlenebilir uygulamaya çalışırsanız ve Android Studio otomatik tamamlar nasıl
, aşağıdaki alıyorumdownloadFileFromNetwork()
kontrol edilmiş bir istisna atar, onu yakalamaya çalışmam ve
RuntimeException
'a sarmam gerek. Daha iyi bir yol olmalı! Yukarıdaki lambda bunu nasıl destekliyor?!?!
Kullanmak java.util.concurrent.Callable dokümanlar görüldü http://reactivex.io/RxJava/javadoc/rx/Observable.html#fromCallable(java.util.concurrent.Callable) – flakes