我试图返回一个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
}
因此,我使用 aSubject
作为订阅Observable
回调底层的单播代理。
这个解决方案的问题是,当我取消订阅Subject
' 订阅时,取消订阅不会转发到底层Observable
. 看起来我需要某种类型的引用来在Subject
没有更多订阅者时取消订阅,但是在这种命令式回调样式中使用它时我无法弄清楚。
我必须保持mkAsync
空白,并正在寻找替代实现。
这是正确的方法吗?是否有使用 的替代解决方案Subject
?
取消订阅主题时,如何确保Observable
取消创建的(unsubscribe
在 上调用)?Subscription