我正在管道两个可观察物
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$
之后运行 最佳答案
您可以使用combineLatest
。
combineLatest([
this.obs1$,
this.selectedDate$
]).subscribe(([obs1Value, selectedDate]) => {...})
现在,每次更改
obs1$
或selectedDate$
时,它将触发订阅。但是请记住,这仅在两个可观测值都发出至少一个值时才有效。如果您想确保即使根本不确定将触发
this.obs1$
也会触发订阅,则可以使用startWith
管道将其链接,这将确保发出一个值。this.obs1$.pipe(startWith('defaultValue'))