如何在rxjs可观察流中使用属性?

时间:2018-05-19 13:00:36

标签: rxjs

我向服务器发送请求并获得了包含正文和Cookie属性的回复

{body:[row1,...,rowN], cookies:sessionData}

在下一步中,我想转换数据以满足我的需求

在(1)中有res对象包含上述结构,res在(2)当然不再有效,因为它是另一个范围。是否有一种rx方式来处理它并稍后获取cookie或者我是否在第一个映射(1)中实现了一个包含cookie的结构?在流数据中?

this.sendRequest("find",params) // send request with some query parameters
      .map((res:Library.Response) => JSON.parse(res.body)) // (1) get the parsed body
      .map((data) => this.filterFindings(data)) // get only the good ones
      .map((data) => this.addCookies(data, res.cookies) // (2) want to add the cookies from res

1 个答案:

答案 0 :(得分:0)

您可以嵌套通话以保持范围内的响应:

this.sendRequest(...).pipe(
  switchMap(res => of(res).pipe(
    map(res => JSON.parse(res.body)),
    //... 
    map(data => addCookies(data, res.cookies)) 
  )
);