【问题标题】:Angular2 RxJs map http responseAngular2 RxJs 映射 http 响应
【发布时间】:2016-02-21 23:39:33
【问题描述】:

我有一个返回照片对象列表的 api,我想使用 subscribe() 进行迭代.. 不是一次全部,而是一个接一个..

http.get('photos.json')
      .map(res => res.json());

我可以使用哪些函数(map、flatmap...)将响应转换为多个数组,所以在使用订阅时,它会一个一个地迭代......而不是一次所有的响应。

jsonexample file

【问题讨论】:

  • 你想迭代图像,对吧?
  • 是的,但不是通过将完整图像传递给 angular.. 而是让它们可观察.. 这样我们就可以在迭代它们之前应用更多过滤器。
  • 你已经有了答案。你只需要从rxjs/add/operator/mergeMap 导入它(flatMap 是mergeMap 的别名),见github.com/ReactiveX/RxJS/blob/master/src/add/operator/…

标签: angular observable rxjs


【解决方案1】:

Flatmap 会这样做,如果你从结果数组中创建一个 Observable。

yourPhotosArray.flatMap(photos => Observable.from(photos))

会将您的照片数组转换为 Observable

【讨论】:

    【解决方案2】:

    你可以使用flatMap

    http.get('photos.json')
      .map(res => res.json())
      .flatMap((array, index) => array)
      .filter(photo => 600 <= photo.height)
      .subscribe(photo => console.log(photo))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-09
      • 2017-09-04
      • 2020-02-05
      • 2018-12-13
      • 2011-01-10
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      相关资源
      最近更新 更多