RxJS运算符,如share(),但不阻止辅助观察者/订阅的订阅完成
我应该使用哪个操作符来实现RxJS运算符,如share(),但不阻止辅助观察者/订阅的订阅完成,rxjs,Rxjs,我应该使用哪个操作符来实现share()行为,如果主观察者取消订阅,即使其他人仍然订阅,该行为将不会阻止观察者完成。与下面使用主题连接的内容类似 const shareSubject = new Subject<UpdateEvent<T>>(); const additionalSubscription = asSynchronisedCollection$(cacheSubject.asObservable()) .debounceTime(3000)
share()
行为,如果主观察者取消订阅,即使其他人仍然订阅,该行为将不会阻止观察者完成。与下面使用主题连接的内容类似
const shareSubject = new Subject<UpdateEvent<T>>();
const additionalSubscription = asSynchronisedCollection$(cacheSubject.asObservable())
.debounceTime(3000)
.subscribe(() => {
// do something in the secondary subscriber.
// as opposed to how share() works,
// this observer shouldn't prevent the observable from completion
});
const mainSubscription = updateEvents$().do(
(update) => {
cacheSubject.next(update);
},
(e) => {
cacheSubject.error(e);
},
() => {
cacheSubject.complete();
}
)
.subscribe(event => {
// do something in the main observer
// until this observer unsubscribes the subscription should not complete
})
constShareSubject=新主题();
const additionalSubscription=asSynchronisedCollection$(cacheSubject.asObservable())
.debounceTime(3000)
.订阅(()=>{
//在辅助订阅服务器中执行某些操作。
//与share()的工作方式相反,
//这个观察者不应该阻止被观察者完成
});
const mainSubscription=updateEvents$().do(
(更新)=>{
cacheSubject.next(更新);
},
(e) =>{
cacheSubject.error(e);
},
() => {
cacheSubject.complete();
}
)
.订阅(事件=>{
//在主要观察者中做一些事情
//在该观察员取消订阅之前,订阅不应完成
})
调用mainSubscription.unsubscribe()
将传递给由updateEvents$()
返回的observable,并将导致辅助订户接收onComplete()
调用additionalSubscription.unsubscribe()
将不会传递给由updateEvents$()
返回的observable,也不会导致主订户接收onComplete()
有没有可以这样使用的操作员?>用法<看起来类似于.share()
你所说的“主要观察者”是什么意思?我所说的“主要观察者”是指管理订阅生命周期并阻止可观察者完成的观察者。观察者不会阻止可观察者完成。观察者只是观察者。这是可观察到的。如果我不准确,我道歉。我更新了示例,以反映我所说的“阻止可观察对象完成的观察者”的意思。share()
本身并不阻止链完成。我认为您需要制作stackblitz演示,展示您想要实现的目标您所说的“主要观察者”是什么意思?我所说的“主要观察者”是指管理订阅生命周期并阻止观察者完成的观察者。观察者不会阻止观察者完成。观察者只是观察者。这是可观察到的。如果我不准确,我道歉。我更新了示例,以反映我所说的“阻止可观察对象完成的观察者”的意思。share()
本身并不阻止链完成。我认为您需要制作stackblitz演示,展示您想要实现的目标