私はこのようなものがある場合:私はbar
の後半で観測可能でunsubscribeにしたい場合は、観測対象から退会するにはどうしたらいいですか?
func foo() -> Observable<Foo> {
return Observable.create { observer in
// ...
}
}
func bar() {
foo().observeOn(MainScheduler.instance)
.subscribeNext {
// ...
}
.addDisposableTo(disposeBag)
}
を、私はそれをどのように行うのでしょうか?
更新
私はdispose
を呼び出すことができます承知だけど、RxSwift docsに応じて:あなたは、通常は手動で処分を呼び出すにしたくない
注意。これは教育的な例にすぎません。手動で処理を呼び出すのは、通常、コードの悪臭です。
unsubscribe
は実装されていませんか?私はRxSwiftコードを使って動くようになりました。何が起こっているのかを理解することができる程度に、サブスクライブメソッドから返されたDisposable
は有用な機能(ディスポーザリング以外のもの)を持つものではありません。
申し訳ありませんが、私の簡略化された例は、1つだけ観察可能です。現実には、私が観察している飛行中に複数のタスクを持ち、いくつかのものから選択的に退会したいと思うでしょう。私が処分袋を解放すれば、彼らはすべて退会されるでしょう。そして私は後でその意図された使用のために処分袋が必要になります。さらに、私は 'dispose'を呼び出すことができると認識していますが、ドキュメントによればこれは悪いコードのにおいです。私の質問の更新テキストを参照してください。ありがとう。 –
あなたのユースケースに応じて、 'takeUntil'は' unsubscribe'と等価かもしれません。私の更新された答えを見てください。 –