Javascript RxJ仅当第一个(源)可观察物发出值而不是其他组合可观察物时才会发出值

Javascript RxJ仅当第一个(源)可观察物发出值而不是其他组合可观察物时才会发出值,javascript,rxjs,Javascript,Rxjs,因此,我想在这里实现的是,仅当source$发出一个值时,才能获得CombineTest([subject1$,subject2$])的结果 问题是,无论我使用订阅的哪个操作符,只要subject1$或subject2$发出一个值(这就是switchMap的工作原理)。现在,我很难找到一个合适的操作符,我想我在寻找某种模式 const source$=fromEvent(文档“单击”); const subject1$=new Subject()//可以在未知时间内发出一个或多个值 const

因此,我想在这里实现的是,仅当
source$
发出一个值时,才能获得
CombineTest([subject1$,subject2$])
的结果

问题是,无论我使用订阅的哪个操作符,只要
subject1$
subject2$
发出一个值(这就是
switchMap
的工作原理)。现在,我很难找到一个合适的操作符,我想我在寻找某种模式

const source$=fromEvent(文档“单击”);
const subject1$=new Subject()//可以在未知时间内发出一个或多个值
const subject2$=new Subject()//可以在未知时间内发出一个或多个值
setInterval(()=>{subject1$.next(1)},1000)
setInterval(()=>{subject2$.next('a')},2000)
来源$
.烟斗(
switchMap(()=>CombineTest([subject1$,subject2$]),//显然不起作用
)
.订阅(([subject1,subject2])=>{
控制台日志(主题1、主题2);
});

非常感谢,

使用
和最新from

source$.pipe(
withLatestFrom(组合测试([subject1$,subject2$))
)
.subscribe(([[uuu,[subject1,subject2]])=>{
控制台日志(主题1、主题2);
})

使用
和最新的from

source$.pipe(
withLatestFrom(组合测试([subject1$,subject2$))
)
.subscribe(([[uuu,[subject1,subject2]])=>{
控制台日志(主题1、主题2);
})
看看。看看。