किसी को भी स्पष्ट उदाहरण के साथ RxJava में अवलोकन, पूर्ण और एकल के बीच अंतर बता सकते हैं?
किस परिदृश्य में हम दूसरों पर एक का उपयोग करते हैं?
किसी को भी स्पष्ट उदाहरण के साथ RxJava में अवलोकन, पूर्ण और एकल के बीच अंतर बता सकते हैं?
किस परिदृश्य में हम दूसरों पर एक का उपयोग करते हैं?
जवाबों:
Observableसमय के साथ मूल्यों का उत्सर्जन करने वाले घटना स्रोत का सामान्य रिएक्टिवएक्स बिल्डिंग ब्लॉक है। (और इस प्रकार हर भाषा में मौजूद है ReactiveX का विस्तार)
छोटी अवलोकन योग्य घटनाओं में निम्न हैं:
onNext * (.Completed | onError)? / (* शून्य या अधिक? - शून्य या 1)
Singleऔर CompletableRxJava में विशेष रूप से पेश किए गए नए प्रकार हैं जो कम प्रकार का प्रतिनिधित्व करते हैं Observable, जिनमें अधिक संक्षिप्त एपीआई है।
Singleप्रतिनिधित्व करते हैं Observableकि एकल मूल्य या त्रुटि का उत्सर्जन करें।
Completableप्रतिनिधित्व करते हैं Observable, कि उत्सर्जन करता है कोई मूल्य नहीं है, लेकिन केवल टर्मिनल घटनाओं या तो onErrorयाonCompleted
आप उन तरीकों के बारे में सोच सकते हैं जो एक विधि के अंतर की तरह हैं जो वापस आती है:
वस्तुओं का संग्रह - अवलोकनीय
एकल वस्तु - एकल
और विधि जो कोई मान नहीं देती है (शून्य विधि) - पूर्णता।
Singleउपयुक्त हो सकता है जब आपके पास कार्य उन्मुख हो और आप एकल मूल्य की उम्मीद करते हैं, जैसे नेटवर्क अनुरोध जो एक बार किया जाता है और मूल्य (या त्रुटि) वापस किया जाता है, तो नेटवर्क कॉल एक समय के फैशन में संचालित होता है, जिसका अर्थ है कि आप अतिरिक्त मानों की वापसी की उम्मीद नहीं करते हैं अधिक समय तक। एक अन्य उदाहरण DB लाने डेटा ऑपरेशन है।
Completableजब आपके पास उचित हो Observableऔर आप ऑपरेशन से उत्पन्न मूल्य के बारे में परवाह नहीं करते हैं, या कोई भी नहीं है। उदाहरण के लिए उदाहरण कैशे को अपडेट कर रहे हैं, ऑपरेशन सफल / विफल हो सकता है, लेकिन इसका कोई मूल्य नहीं है।
एक अन्य उदाहरण कुछ लंबे समय तक चलने वाला इनिट ऑपरेशन है जो कुछ भी वापस नहीं करता है। यह UPDATE / PUT नेटवर्क कॉल हो सकता है जो केवल सफलता संकेत के साथ हुआ।
किसी भी स्थिति में, कंप्लीटेबल और सिंगल नई क्षमताओं को नहीं जोड़ रहे हैं, लेकिन वे अधिक मजबूत और संक्षिप्त एपीआई पेश कर रहे हैं, जो ऑब्जर्वेबल के पीछे के संचालन के बारे में अधिक बताता है कि एपीआई ने उजागर किया।
संपादित करें:
Maybe:RxJava2 ने एक नया प्रकार जोड़ा Maybe, जिसे और सिंगल Maybeका संयोजन कहा जाता है Completable।
ऊपर की समान भाषा में, Maybeएक विधि के रूप में सोचा जा सकता है Optionalजो किसी प्रकार का रिटर्न देता
है, Optionalऑब्जेक्ट के चारों ओर एक आवरण होता है जो स्पष्ट रूप से बताता है कि क्या हमारे पास इसमें कुछ मूल्य है - Objectया नहीं (शून्य के बजाय)।
हमारे साथ Maybeया तो कुछ मूल्य हो सकते हैं या जैसे कुछ Singleभी नहीं है - जैसे Completable। इसके अतिरिक्त, दोनों की तरह, हमारे पास त्रुटि है।
Maybeमूल्यवान है जब हम यह चिन्हित करना चाहते हैं कि Observableमूल्य नहीं हो सकता है और बस पूरा हो जाएगा।
एक उदाहरण कैश से प्राप्त किया जाएगा, कैश में हमारे पास कोई मूल्य नहीं होगा, इसलिए इस मामले में, हम पूरा करेंगे, ओउ हम onNextकैश से मूल्य के साथ प्राप्त करेंगे ।
यह RxJava2 के साथ एक धारा में गैर-शून्य मानों को संभालने के लिए भी योग्य है।
Flowable:सबसे पहले, चलो बैकप्रेस को परिभाषित करते हैं। Backpressure उस स्थिति से निपटने का एक साधन है जहाँ डेटा को संसाधित किए जाने की तुलना में तेज़ी से उत्पन्न किया जाता है। Flowableआइटम का अनुरोध करने के लिए डाउनस्ट्रीम को अनुमति देने के लिए बैकप्रेस की सहायता है आप यहां अंतर के बारे में अधिक पढ़ सकते हैं ।
Maybe<T>, अनिवार्य रूप से Single<T?>,?
Singleएक होने के लिए Completableदिए गए मान के साथ?
एक संक्षिप्त जवाब मुझे यहां आरएक्सजाव अनुभाग पर मिला ।