ما هو الفرق العملي بين كل هذه الامتدادات التي يمكن ملاحظتها التفاعلية؟

StackOverflow https://stackoverflow.com/questions/2389365

  •  24-09-2019
  •  | 
  •  

سؤال

بالنظر إلى السلوكيات ، ما هو الفرق العملي بين استدعاء كل هذه الوظائف المختلفة عليها؟

  • أولاً()
  • آخر()
  • أحدث Value ()
  • mostrecentvalue ()
  • NextValue ()
  • غير مرتبطة()
  • خذ 1)

على افتراض أنني أفهم ذلك بشكل صحيح ، ينبغي أن يفعلوا جميعًا حيال نفس الشيء ، بالنظر إلى السلوكيات.

إذا كان الأمر كذلك ، فما هي المكالمة الأكثر ملاءمة (التي أعني بها: أي أفضل ما ينقل نيتي)؟ أولا أو واحد ربما؟

إذا لم يكن كذلك ، فما هي الاختلافات العملية؟

هل كانت مفيدة؟

المحلول

أولاً ، أخيرًا ، وفردي يحظرون ؛ يوصى باستخدام Take (1) بدلاً من ذلك ، بحيث تحصل على عودة قابلة للرسو. عند تصنيف مشغلي الاستعلام ، يوصى بتجنب أولاً ، أخيرًا وفردي لأنك تخرج من سلامة الموناد ... وهذا يعني أن لديك آثارًا جانبية حظر. نرى http://blogs.msdn.com/jeffva/archive/2009/12/09/first-last-contains-etc-can-be-extremely-dangerour-yet-extremely-useful.aspx لمعرفة المزيد عن ذلك.

تمت إزالة MoStrecentValue وأحدث Value من أحدث إصدار من RX لأنهم يحجبون أيضًا ، وبالتالي فإن عوامل الحظر الوحيدة المتبقية هي الأولى والأخير والفردية (ومتغيرات XXXORDEFAULT) ، وفقًا لأحدث ملاحظات الإصدار.

ستعيد MoStrecent أخذ عينات من القيمة الأخيرة ، كما هو الحال في كثير من الأحيان (ويستغرق الأمر القيمة الأولية لضمان عدم الانتظار أبدًا) ، أي "بدون استهلاك" ، في حين أن الأحدث سوف تنتظر حتى تصل القيمة ثم إرجاعها "مع الاستهلاك" - هذا هو ، إذا اتصلت بالأحدث مرة أخرى ، فلن تُرجع نفس القيمة مثل المكالمة الأخيرة ، فستنتظر حتى تصل القيمة التالية ، إن وجدت.

نصائح أخرى

شكرًا @Richardhein على الإجابة العظيمة.

يجب نقل طرق تمديد الحظر حقًا إلى مساحة الاسم الخاصة بهم ، لذلك يتعين على المطور اختيار تضمينها على وجه التحديد لمشروع (أو على وجه التحديد ملف CS). يمكنك إضافة طن من التعقيد مع RX ، ومن خلال استخدام طريقة الحظر بطريق الخطأ ، تقوم بإعدادها بشكل أساسي إلى Ilist/ienumerable.

أعتقد أن هذا هو أكبر خطأ ارتكبه فريق RX ، Iow أعتقد من خلال تضمين هذه افتراضيًا ، فقد فاتهم "حفرة النجاح" مع RX. إصلاح هذا وأسمي RX واجهة برمجة التطبيقات المفضلة عند الانتقال إلى ما بعد التزامن واحد + async في C# (أي لماذا .NET أقوى من قول NodeJs).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top