Невозможно понять этот код, включающий BehaviorSubject и наблюдаемые

#rxjs

#rxjs

Вопрос:

Я читаю этот фрагмент кода https://coryrylan.com/blog/angular-observable-data-services

особенно эта строка

 this._todos.next(Object.assign({}, this.dataStore).todos);
  

Чего я не понимаю, так это почему после вызова
Object.assign({}, this.dataStore ), который копирует содержимое хранилища данных в новый объект, почему бы не сделать просто

 this._todos.next(Object.assign({}, this.dataStore))
instead of
this._todos.next(Object.assign({}, this.dataStore).todos)
  

Есть идеи?

Ответ №1:

Потому что рекомендуется предоставлять этому компоненту только те данные, которые требуются компоненту.

Следующая строка приводит _todos к тому, что субъект выдает только данные Todos:

 this._todos.next(Object.assign({}, this.dataStore).todos)
  

Приведенный ниже код, который вы предлагаете, приведет _todos к тому, что субъект выдаст весь dataStore :

 this._todos.next(Object.assign({}, this.dataStore))