类型'OperatorFunction <{},any>'上不存在属性'subscribe'

时间:2019-11-25 21:36:42

标签: angular rxjs angular8

我正在将项目从Angular 5升级到8,并且看到了此问题。 我在做什么错了?

this.pinService.savePinComment(this.pinComment, this.pinService.participantPin).subscribe(res => {
    this.pinService.modeForPinComment.next({ readOnly: false, isInEditMode: false });
  });

PinService.ts

public savePinComment(model: PinComment, pin: string) {
  const body = JSON.stringify(model);
  const options = Utilities.getApiAuthorizedRequestOptions();
  const requestUrl = `${this.pinCommentsUrl}/${pin}/${model.id}`;
  return this.http
    .post(requestUrl, body, options)
    .pipe(
      map(res => this.extractPinComment(res))),
  catchError(err => {
    return this.handleError(err);
  });
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

这种编译非常了不起。您的问题是关闭了地图上的管道,然后catchError刚在管道外部运行。

这是正确的代码:

.pipe(
  map(res => this.extractPinComment(res)), // removed a parenthesis
  catchError(err => {
    return this.handleError(err);
  })
);