So erstellen Sie eine Observable, die einen einzelnen Wert erzeugt und niemals abgeschlossen wird

8

Ich kenne Observable.Never() als eine Möglichkeit, eine Sequenz zu erstellen, die niemals abgeschlossen wird, aber gibt es einen Extension / clean-Prozess zum Erstellen einer Observablen, die einen einzelnen Wert erzeugt und dann nie beendet? Gehe ich mit Observable.Create(...) ? %Code%? Oder ist etwas eingebaut oder mehr "RXy" als das?

    
el2iot2 29.01.2014, 21:49
quelle

5 Antworten

11

Für Ihre spezifische Frage können Sie einfach 'Niemals' und 'StartMit' verwenden:

%Vor%

Aber für den allgemeineren Fall von "Ich habe eine beobachtbare Sequenz, die einige Ergebnisse hervorbringt und schließlich vervollständigt und ich möchte sie so ändern, dass sie nicht abgeschlossen wird" (wovon Ihre Frage ein Sonderfall ist), Ihre Concat-Idee ist der Weg, es zu tun

%Vor%

oder

%Vor%     
Brandon 30.01.2014, 01:12
quelle
6

Observable.Concat(Observable.Return(onlyValue), Observable.Never<T>()) scheint gesund zu sein. Ich habe das wahrscheinlich sowieso übertrieben.

    
el2iot2 29.01.2014 22:05
quelle
2

Der Vollständigkeit halber ist hier die Create-Version:

%Vor%     
Paul Betts 31.01.2014 01:25
quelle
2

Hier ist eine allgemeine Hilfsmethode, um es auf einmal zu machen. Eine Version von StartWith , die ohne eine Quellensequenz aufgerufen werden kann, wodurch Never überflüssig wird. Könnte Ihren Code lesbarer machen, wenn Sie das Konstrukt viel verwenden.

%Vor%     
James World 31.01.2014 10:03
quelle
1

Dies kann noch einfacher gemacht werden:

%Vor%     
Niek Jannink 08.11.2016 20:09
quelle