Я пытаюсь понять пример службы редактирования ( ссылка ) в kendo-ui для angular для планировщика (который находится в бета-версии).Класс EditService расширяет BaseEditService.
Функция read () для editService в моем коде выглядит следующим образом:
public read(): void {
if (this.data.length) {
this.source.next(this.data);
return;
}
this.fetch().subscribe(data => {
this.data = data.map(item => this.readEvent(item));
this.source.next(this.data);
},null, null
);
}
Я не понимаю, что такое this.source.next (this.data) делает.
Согласно base-edit.service.d.ts:
/**
* The source subject for the `events` observable.
*/
protected source: BehaviorSubject<TEvent[]>;
При более глубоком анализе объекта BehaviorSubject (из RxJS) обнаруживаетсяcomment
* A variant of Subject that requires an initial value and emits its current
* value whenever it is subscribed to.
Я начинаю думать, что this.data необходим для ввода в this.source.next (), и причина, по которой он не выполняется в одной строке, как в следующем
this.source.next(data.map(item => this.readEvent(item)));
потому что он необходим для оператора if, когда данные уже существуют.