【问题标题】:Why use the spread operator on an HttpClient response observable?为什么在 HttpClient 响应 observable 上使用扩展运算符?
【发布时间】:2019-08-01 02:26:02
【问题描述】:

我正在查看有关 Angular 的 HttpClient (https://angular.io/guide/http#error-handling) 的文档并遇到了这个 sn-p:

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

我很好奇为什么data 对象在分配给config 属性之前会被传播。与简单地将数据对象直接分配给this.config相比,这样做有什么优势?

【问题讨论】:

    标签: angular2-observables angular-httpclient


    【解决方案1】:

    我也一直在想同样的事情。我想这只是一个很好的灵活做法。当您传播 ...data 时,它会复制每个键/值对,并且 this.config 是现在保存复制对象的接收器。如果需要,您可以在 this.config 中添加一些其他内容,例如 { ...data, ...moredata }

    以下摘自https://codeburst.io/a-simple-guide-to-destructuring-and-es6-spread-operator-e02212af5831

    “当被传播的东西是一个对象并且接收者也是一个对象时,键值对被复制在一起而不仅仅是值。大多数情况下,带有对象的传播运算符用于复制一个现有对象或创建具有更多属性的新对象。”

    这对我来说很新鲜,所以我绝不是权威,但这就是我收集到的(如果我遗漏了什么,请告诉我)。我现在在一些生产代码中使用这种技术。

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2021-03-21
      • 2022-11-19
      • 1970-01-01
      • 2019-04-13
      • 2018-11-02
      • 1970-01-01
      • 2017-03-17
      • 2018-05-15
      相关资源
      最近更新 更多