Зачем использовать оператор распространения в наблюдаемом ответе HttpClient? - PullRequest
0 голосов
/ 24 августа 2018

Я просматривал документацию по HttpClient от Angular (https://angular.io/guide/http#error-handling)) и наткнулся на этот фрагмент:

showConfig() { this.configService.getConfig() .subscribe( (data: Config) => this.config = { ...data }, // success path error => this.error = error // error path ); }

Мне интересно, почему data объект распространяется до присвоения свойству * 1009. * В чем преимущество этого по сравнению с простым присвоением объекта данных непосредственно this.config?

1 Ответ

0 голосов
/ 31 июля 2019

Мне тоже интересно то же самое. Я думаю, это просто хорошая гибкая практика. Когда вы распространяете ... данные, он создает копию каждой пары ключ / значение, и this.config является получателем, который теперь содержит скопированный объект. Если вам нужно, вы можете добавить некоторые другие вещи в this.config, такие как {... data, ... moredata}

Следующая выдержка взята из https://codeburst.io/a-simple-guide-to-destructuring-and-es6-spread-operator-e02212af5831

"Если распространяемая вещь - это объект, а получатель - тоже объект, то пары ключ-значение копируются вместе, а не просто значениями. В основном, оператор распространения с объектами используется для создания копии объекта. существующий объект или создать новый объект с дополнительными свойствами. "

Это довольно ново для меня, так что я ни в коем случае не авторитет, но вот что я собрал (скажите, если я что-то упустил). Сейчас я использую эту технику в некотором производственном коде.

...