Мне нужна помощь с подпиской на rxjs. Можете ли вы помочь мне понять эту маленькую вещь, называемую «переписать» подписку?
Например, у меня есть ползунок календаря .
При подключении к жизненному циклу OnInit я получаю значение по умолчанию, например:
let today = new Date();
let monday = this.datePipe.transform(this.getMonday(today), 'yyyy-MM-dd');
let changedMonday = this.getMonday(today);
let weekDay = this.datePipe.transform(new Date(changedMonday.setDate(changedMonday.getDate() + 6)), 'yyyy-MM-dd');
this.getCalendarPeriodSubscr = this.projectsService.getCalendarPeriod(monday, weekDay)
.subscribe((dates: DateType[])=> {
this.datesFullPeriod = dates;
this.datesPeriod = this.checkWeekDays(dates)
})
Затем мне нужно получить новое значение с сервера с помощью другого http-запроса, например:
goNextDate(){
console.log('go next date')
let sunday = new Date(this.datesFullPeriod[this.datesFullPeriod.length - 1].date);
let from = this.datePipe.transform(new Date(sunday.setDate(sunday.getDate() + 1)), 'yyyy-MM-dd');
let endDate = new Date(from)
let to = this.datePipe.transform(new Date(endDate.setDate(endDate.getDate() + 6)), 'yyyy-MM-dd');
this.getCalendarPeriodSubscr = this.projectsService.getCalendarPeriod(from, to)
.subscribe((dates: DateType[])=> {
this.datesFullPeriod = dates;
this.datesPeriod = this.checkWeekDays(dates)
})
}
Итак, как вы видите, я переписываю getCalendarPeriodSubscr
для другой подписки (тип getCalendarPeriodSubscr
равен Subscription
).
Я знаю кое-что о .share()
или о переходе на глобальный Subscription[]
или использовании Subject
для следующей отписки. Но я не понимаю, потому что мне действительно нужно что-то подобное.
Все это помогает мне один раз отписаться от него.
Так что, пожалуйста, кто-нибудь знает, "переписать" даст мне то, что я хочу как 1 подписка для всех этих запросов HTTP (Я не уверен, что эта 1-я и следующая подписка, кроме последней , уничтожены при переписывании предыдущего)?