Observable
コールバックで非同期に作成された を返そうとしています:
const mkAsync = (observer, delay) =>
setTimeout(() => Observable.of('some result').subscribe(observer), delay)
const create = arg => {
const ret = new Subject()
mkAsync(ret, arg)
return ret
}
したがって、コールバックSubject
の基になるものにサブスクライブされるユニキャスト プロキシとしてを使用します。Observable
このソリューションで私が抱えている問題は、Subject
の購読を解除すると、購読解除が基になる に転送されないことObservable
です。Subject
サブスクライバーがなくなったときにサブスクライブを解除するには、何らかのタイプの参照カウントが必要なようですが、この種の命令型コールバック スタイルで使用する場合、それを理解できませんでした。
私はボイドを維持する必要がありmkAsync
、代替の実装を探しています。
それは正しい方法ですか?を使用する代わりの解決策はありSubject
ますか?
サブジェクトがサブスクライブ解除されたときに、作成されたObservable
がキャンセルされる (unsubscribe
で呼び出される)ことを確認するにはどうすればよいですか?Subscription