это работает, но я не хочу использовать null для начальных значений startDate и endDate, мне нужно инициализировать значениями из другой наблюдаемой, userInfo $ в приведенном ниже коде:
export interface IUserInfo {
UserEntryStartDate: Date;
UserEntryEndDate: Date;
// ...
}
public userInfo$: Observable<IUserInfo>;
private dateFilterSubject = new Subject<{
startDate: Date;
endDate: Date;
}>();
this.userInfo$
.pipe(
withLatestFrom(
this.dateFilterSubject.pipe(
startWith({
startDate: null,
endDate: null
})
)
)
)
.subscribe(([userInfo, dateFilters]) => {
// ... do stuff
}
Это то, что я хотел бы сделать
this.userInfo$
.pipe(
takeWhile(() => this.active),
withLatestFrom(user => // userInfo from outer observable
this.dateFilterSubject.pipe(
startWith({
startDate: user.UserEntryStartDate,
endDate: user.UserEntryEndDate
})
)
)
)
.subscribe(([userInfo, dateFilters]) => {
// do stuff
}
Это даже дает правильное автозаполнение и ввод параметра user
, однако я получаю сообщение об ошибке при подписке:
Type 'Observable<{ startDate: Date; endDate: Date; } | { startDate: Date; endDate: Date; }>' must have a '[Symbol.iterator]()' method that returns an iterator.
Что я делаю не так?