На вашем месте я бы создал отдельный объект 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);