在rxjs中组合行为主体

在rxjs中组合行为主体,rxjs,Rxjs,我想使用CombineTest()组合两个BehaviorSubject。然而,这会产生一个正常的观察者,这对我的情况不起作用,因为我需要一个广播流,它在listen上发出先前的值 如何将多个BehaviorSubject组合成一个BehaviorSubject?如果我是你,我会创建一个单独的BehaviorSubject,从主要的两个主体收集排放物,然后重新排放或作为一个值提供: bs1 = new BehaviorSubject(1); bs2 = new BehaviorSubject(2

我想使用CombineTest()组合两个BehaviorSubject。然而,这会产生一个正常的观察者,这对我的情况不起作用,因为我需要一个广播流,它在listen上发出先前的值


如何将多个BehaviorSubject组合成一个BehaviorSubject?

如果我是你,我会创建一个单独的BehaviorSubject,从主要的两个主体收集排放物,然后重新排放或作为一个值提供:

bs1 = new BehaviorSubject(1);
bs2 = new BehaviorSubject(2);
bsCombined = new BehaviorSubject(undefined);

bs1.subscribe(val => bsCombined.next(val));
bs2.subscribe(val => bsCombined.next(val));

bsCombined.subscribe(newestVal => {
   if(newestVal !== undefined) {
     /* Go on with processing */
   }
})
/* Due to previous subscriptions those emissions will be stored in combined behaviorSubject */
bs1.next(2);
bs1.next(3);
bs2.next(6);
bs1.next(4);

不清楚你在问什么。您可以将一些代码与实际行为和期望的行为共享吗?您是否已经考虑过使用
ReplaySubject
或其他replay操作符?