Wenn ich etwas, das wie folgt aussieht:Wie kann ich eine Observable abbestellen?
func foo() -> Observable<Foo> {
return Observable.create { observer in
// ...
}
}
func bar() {
foo().observeOn(MainScheduler.instance)
.subscribeNext {
// ...
}
.addDisposableTo(disposeBag)
}
Wenn ich in bar
später zu unsubscribe aus dem beobachtbaren will, wie würde ich das tun?
aktualisieren
Ich bin mir bewusst, ich dispose
nennen kann, sondern nach dem RxSwift docs:
Beachten Sie, dass Sie in der Regel nicht wollen, manuell entsorgen nennen; Dies ist nur ein Bildungsbeispiel. Der manuelle Aufruf von dispose ist normalerweise ein schlechter Code-Geruch.
So ist unsubscribe
gerade nicht implementiert? Ich bin durch den RxSwift-Code spelunking gegangen, und in dem Ausmaß, dass ich verstehen kann, was los ist, sieht es nicht aus wie die , die von den Subscribe-Methoden zurückgegeben wird, ist alles mit nützlichen Funktionen (außer Entsorgung).
Entschuldigung, mein vereinfachtes Beispiel hat nur eine Observable. In Wirklichkeit werde ich mehrere Aufgaben im Flug haben, die ich beobachte, und ich werde mich selektiv von einigen abmelden wollen. Wenn ich den Entsorgungssack entsorge, werden alle abgemeldet. Und ich werde die Entsorgungsbeutel später auch für den vorgesehenen Gebrauch brauchen. Außerdem bin ich mir bewusst, dass ich 'dispose' nennen kann, aber laut den Dokumenten ist das ein schlechter Code-Geruch. Siehe aktualisierten Text in meinen Fragen. Vielen Dank. –
Je nach Anwendungsfall kann 'takeUntil' ein Äquivalent zu' unsubscribe' sein. Siehe meine aktualisierte Antwort. –