In der neuen Version führte reactiveX Single als eine Variante von Observable ein Ссылка
Das ist nett zu haben, da ich in meinem aktuellen Anwendungsfall mehrere Ausführungen habe und jeder von ihnen nur ein einziges Ergebnis liefert. Es wird also Sinn machen, wenn ich von Observable zu Single wechseln werde.
Aber dann, als Teil meines Anwendungsfalls, muss ich diese multiple Ausführung oben in einen Observable-Stream einfügen (um Ergebnisse von allen obigen Ausführungen zu erhalten).
Nun, meine Frage ist, was ist besser in Bezug auf die Leistung?
oder
Danke.
Wenn ich Ihre Situation vollständig verstehe, würde es aus meiner Kenntnis sinnvoll sein, wenn die Singles mit den oben erwähnten Multi-Execution-Aussagen umgehen und diese Singles mit einem Observablen kombinieren.
Ich kann keine großartige Dokumentation finden, um dies aus Performance-Gründen zu tun, aber ich kann logisch erklären, warum es besser ist, eine Single zu verwenden, wenn es möglich ist (obwohl Sie in die Unkräuter geraten, wenn es zu umfangreichem Refactoring kommt) .
Antwort: Betrachten Sie eine Situation, in der wir ein Observable verwenden, das Ihrem Fall ähnlich ist (wir wissen, dass es nur einen einzelnen Wert zurückgibt). Bei einem Single haben wir die Logik, nach der Ausgabe eines Werts sofort zur OnSuccess-Methode zu wechseln, während wir in Observables sicherstellen müssen, dass es sich um den letzten handelt, und dann OnComplete aufrufen.
Vielleicht kann ein anderer Entwickler eingreifen, aber die Logik dahinter scheint Sinn zu ergeben.
Single soll verwendet werden, wenn Sie eine Einzelwertantwort erwarten.
Observable auf der anderen Seite ist für einen Stream oder Vektorwerte verwendet werden.
In Bezug auf das Reactive Pattern ist es also ausreichend, Single zu verwenden, falls Sie das einzige Ergebnis erwarten.