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演示,展示您想要实现的目标