【问题标题】:How to map a deeply nested object in Rxjs如何在 Rxjs 中映射深度嵌套的对象
【发布时间】:2023-03-28 17:56:01
【问题描述】:

我开始在 angular2 中使用 rxjs。在将 http 响应映射到 observable 时,我见过的许多示例都使用简单的对象。

 this.http.get('/app/shared/data/raw-tasks.json')
        .map(response => response.json())
        .map(stream => stream.map(res => new TaskModel(res.name, res.deadline, res.timeRequired)))

但是如何映射更复杂的响应,例如嵌套对象和嵌套数组?

【问题讨论】:

    标签: angular rxjs


    【解决方案1】:

    一旦您从响应中获得 json,您就可以随心所欲地使用它。只需添加另一个 map 函数并在其他地方解析它(确保返回解析值):

     this.http.get('/app/shared/data/raw-tasks.json')
       .map(response => response.json())
       .map(stream => complicatedParser(stream))
    
     // somewhere in your code...
     complicatedPatser(stream) {
        return stream
          .map(x => x)
          .filter(x => true)
          .reduce(....)
     }
    

    Observables 不关心它们发出什么,所以简单的字符串或复杂的嵌套对象之间几乎没有区别。如果您知道如何处理基本类型、object 和/或array 响应,那么您几乎什么都知道(;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 2020-09-27
      • 2013-08-01
      相关资源
      最近更新 更多