我试图订阅内部的Observable。这就是我正在做的事情:
getDates() {
if (this.booking.id) {
this.jobService.findById(this.booking.id)
.map(job => job[0])
.switchMap((job) => {
return job ? this.bookingService.findByPropertyId(job.property.id) : Observable.empty();
}, (job: Job, bookings: Booking[]) => {
this.mark_jobs_unavailable(job, bookings);
return job;
})
.subscribe(job => {
this.bookingJob = job;
});
}
}
我的代码工作正常,我唯一想要实现的是订阅我的预订的更改。目前,由于我不确定在哪里订阅我从bookingService.findByPropertyId
获得的Observable,我的应用程序并不反映预订集合中发生的变化。
答案 0 :(得分:0)
要获取预订的更改,bookingService.findByProperyId()
必须随时返回可观察的值(即,它可以在一段时间内返回多个值)发生更改。
答案 1 :(得分:0)
您可以尝试这样的事情:
this.jobService.findById(this.booking.id)
.mergeAll() // or .mergeAll().first()
.switchMap(
job => this.bookingService.findByPropertyId(job.property.id),
(job, bookings) => [job, bookings]
)
.subscribe(([job, bookings]) => {
this.bookingJob = job;
this.mark_jobs_unavailable(job, bookings);
});
现在,您在订阅方法
中同时拥有工作和预订