Angular 6和RxJS中未发送Rest-api调用

时间:2018-07-19 08:55:21

标签: angular rxjs ngrx angular-httpclient

我在组件中使用了这种方法:

saveItem() {
   return this.itemService.updateItem(this.item)
     .pipe(
       tap((data: any) => {
         this.toastr.success('Saved');
       }),
       catchError((error: any) => {
       return throwError(error.error);
      }
    )
  )
}

这是 itemService 中的函数:

updateItem(item: Item) {
    return this.http.post<any>(this.updateItemUrl, {
        item: item
    });
}

如果我在'return this.itemService。'行的saveItem()内部放置一个断点,并且如果我在'return this.http。行的updateItem()内部放置一个断点。 ..',它正确进入并停在了断点... 但是我有以下问题:不会触发rest-api调用,也不会发送http调用。.实际上,如果我在.pipe()运算符内放置一个断点,它将不进去。为什么?

1 个答案:

答案 0 :(得分:1)

可观察对象(例如http-Requests)仅在具有至少一个订阅者的情况下才处于活动状态。

=>没有订阅者=>没有Http请求

您可以通过

明确订阅
myObservable.subscribe()

或通过html模板中的异步管道隐式

<span> {{ myObservable | async }} </span>

热烈的问候