我正在传送两个可观察物
this.obs1$
.pipe(
skip(1),
mergeMap(schedules => {
this.schedules=schedules
for (let elm in schedules) {
....
}
return this.selectedDate$;
})
)
.subscribe(selectedDate => {
....
问题在于,如果未触发Obs1$
,订阅将不会发送数据。
即使selectedDate$
不变,我也想获得Obs1$
值,但是selectedDate$
应该总是在Obs1$
之后运行
答案 0 :(得分:2)
您可以使用combineLatest
。
combineLatest([
this.obs1$,
this.selectedDate$
]).subscribe(([obs1Value, selectedDate]) => {...})
现在,每次更改obs1$
或selectedDate$
时,都会触发订阅。
但是请记住,这仅在两个可观察值都发出至少一个值时才有效。如果您想确保即使根本不确定this.obs1$
也会被触发,则可以使用startWith
管道将其链接,这将确保发出一个值。
this.obs1$.pipe(startWith('defaultValue'))