2017-02-21 1 views
5

मैंने एसिंक/प्रतीक्षा के कार्यों के बजाय ऑब्जर्वेबल्स का उपयोग करके कुछ चर्चाएं देखी हैं। मैं वर्तमान में लगभग विशेष रूप से CreateFromTask का उपयोग करता हूं। मैं CreateFromTask के बजाय CreateFromObservable का उपयोग करने के पीछे तर्क को समझने की कोशिश कर रहा हूं।ReactiveCommand.CreateFromTask बनाम ReactiveCommand.CreateFromObservable

और यदि हां, तो CreateFromTask को CreateFromObservable में कनवर्ट करने का सबसे अच्छा तरीका क्या होगा।

उत्तर

4

CreateFromTask वास्तव में केवल एक सहायक के रूप में है क्योंकि हम मुख्य रूप से कार्य आधारित दुनिया में रहते हैं :-) पूरी तरह प्रतिक्रियाशील दुनिया में आपके द्वारा उपयोग की जाने वाली सभी पुस्तकालयों ने केवल पर्यवेक्षकों का पर्दाफाश किया होगा। फिर आप पर्यवेक्षकों को समाप्त करने के लिए अंत हो सकते हैं। लेकिन यह देखते हुए कि यह मामला क्यों नहीं है, आरएक्सयूआई में कमांडरों में कार्यों को आसानी से खींचने के लिए कुछ सहायक शामिल हैं।

आप यहाँ https://github.com/reactiveui/ReactiveUI/issues/1245

तुम वहाँ भी है एक चर्चा बस इन सहायकों से छुटकारा पाने के देखेंगे देखें।

यदि आप "CreateFromTask" के लिए कोड सब यह करता है काम पर ToObservble() फोन यह एक प्रत्यक्ष और उसके बाद कोड कॉल करने के लिए कन्वर्ट करने के लिए CreateFromObservable

https://github.com/reactiveui/ReactiveUI/blob/develop/src/ReactiveUI/ReactiveCommand.cs#L418

उस प्रश्न का तो है पर देखने के मैं बस कहूंगा कि कार्य पर ToObservable को कॉल करना इसे बदलने का सबसे अच्छा तरीका है। आप इस का उपयोग करते हुए बयान

using System.Reactive.Threading.Tasks 

क्या मैं सामान्य रूप से है, तो बस मेरे सभी टास्क आधारित पुस्तकालयों एक मुखौटा के साथ रैप और ToObervable का उपयोग कर उन्हें बेनकाब है शामिल करने के लिए की आवश्यकता होगी। यदि आप एक प्रतिक्रियाशील समाधान के साथ जा रहे हैं तो यह मिश्रण और मिलान के विरोध में पर्यवेक्षकों की भूमि में काम करने के लिए जीवन को आसान बना देगा।

CreateFromTask पर CreateFromObservable के पीछे तर्क यह है कि लाइब्रेरी मानती है कि आपका समाधान मुख्य रूप से प्रतिक्रियाशील है ताकि यह चीजों की अपेक्षा करने का प्राथमिक तरीका होगा। उन कमांडों को बनाने के अन्य सभी तरीके वास्तव में केवल सहायक हैं जो आखिरकार CreateFromObservable

+1

धन्यवाद बनाने के लिए रास्ता बनाते हैं। यह वास्तव में बहुत कुछ साफ़ करने में मदद करता है। –

संबंधित मुद्दे