Http rxjs-将订阅结果传递给另一个函数

时间:2018-07-09 02:27:34

标签: http rxjs httpclient angular6 subscribe

请您指导我正确的方向吗?

我正在尝试从旧的Http REST服务中提取记录,重组数据,然后将其发布到firebase。

我不确定这是完全错误的方法还是完全误解了可观察的方法。您的指导将不胜感激。如何将此新清单发送到另一个DataService函数:exportToFirebase(new_listing)?

onServiceCall() {
  this.httpDataService.getData().subscribe((itemData) => {
    this.itemDataJSON = itemData;
    if (this.itemDataJSON) {
      this.itemDataJSON.forEach(function(value) {
        let new_listing = new Listing(value.id, value.name, value.category);
        //console.log(new_listing);
        //How to send this new listing to another firebaseDataService function exportToFirebase(new_listing);
      });
    }
  });
}

1 个答案:

答案 0 :(得分:1)

demo使用模拟的http和firebase服务来实现您想要的功能。

// --- make http call
httpCall.pipe(
  // --- construct an array of "new_listing" (of just one, up to u) and pass along the observable chain
  concatMap(httpNumbers => of(...httpNumbers)),
  // --- make the firebase call
  concatMap(number => firebaseCall(number))
).subscribe(val => console.log(val))

希望这会有所帮助。如果这没有意义,那么您需要阅读RxJS