'un RxJava eşdeğeri nedir? Diğer dillerde stream/functional land alanında ortak bir işlem var, orElse(). Mevcut zincirin herhangi bir sonuç elde etmediği durumlarda, alternatif olana dönüşür. Belki türlerine sahip bir dilde temelde bir tür için zincire devam eder veya bir None türündeki orElse değerine geçer.orElse
İdeal durum: Bu olabilir
Observable.just(false)
.filter(value -> { return value; })
.map(value -> { return 1; })
.orElse(Observable.just(0));
Observable.<Boolean>error(new IllegalStateException("Just playing"))
.filter(value -> { return value; })
.map(value -> { return 1; })
.orElse(Observable.just(0));
anda concat ve takeFirst kullanılarak yeniden, ama sadece değil semantik aynı olduğunu ve düzgün hata işleme kapsamaz. defaultIfEmpty veya switchIfEmpty: onlar, ancak farklı adlandırma ile var gibi
Observable.concat(Observable.just(false)
.filter(value -> { return value; })
.map(value -> { return 1; }),
Observable.just(0))
.takeFirst();
olsa hata davalarını değil, siz onErrorResumeNext veya onErrorReturn gerekiyordu. –
Merhaba @ MLProgrammer-CiM. Bence hata durumlarını halletmeli. İlk veya ikinci gözlemlenebilirlikten nasıl yakalayacağımı gösteren ek örnekler ekledim. (btw, kodlama sihir var mıyım? cool;) –
Bunlar benim davamı kapsamıyor. Gözlemenin başlamasının, sadece bir şey olmak yerine başarısız olduğunu, ancak yine de, switchEfEmpty yolunu değiştirmek istediğimi düşünün. –