Что делает source в kendo-scheduler’s base-edit.service?

#angular #kendo-ui #rxjs #kendo-scheduler

#angular #kendo-ui #rxjs #kendo-scheduler

Вопрос:

Я пытаюсь понять пример службы редактирования (ссылка) в 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) обнаруживается комментарий

 * A variant of Subject that requires an initial value and emits its current
* value whenever it is subscribed to.
  

Я начинаю думать, что это.для ввода в this.source.next() необходимы данные, и причина, по которой это не выполняется в одной строке, как показано ниже

  this.source.next(data.map(item => this.readEvent(item)));
  

это потому, что он необходим для оператора if, когда данные уже существуют.