0

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

4

1 に答える 1