Angular 5 to 6升级:Property' map'类型Observable

时间:2018-05-06 18:37:10

标签: angular rxjs

我已将我的角度应用程序从版本5升级到6,并且我从以下代码中获取此错误。

  const request = this.evidenceService.get().map((res) => res.data)
                .catch(error => Observable.of(null));
  

物业'地图'在类型' Observable'。

上不存在

4 个答案:

答案 0 :(得分:44)

操作员链接已转换为在RXJS v6中使用.pipe(),您应该遵循recommended migration path for RXJS。此外, catch 运算符已重命名为 catchError

现在应该如何完成:

const request = this.evidenceService.get().pipe(
    map((res) => res.data)),
    catchError(error => Observable.of(null))
  );

答案 1 :(得分:26)

根据https://www.academind.com/learn/javascript/rxjs-6-what-changed/

过去

import 'rxjs/add/operator/map'

myObservable
  .map(data => data * 2)
  .subscribe(...);

<强> 现在

import { map } from 'rxjs/operators';

myObservable
  .pipe(map(data => data * 2))
  .subscribe(...);

答案 2 :(得分:6)

This solved my problem 这是代码:

import { map } from "rxjs/operators";

**************************************************示例**下面******************************************

getPosts(){
this.http.get('http://jsonplaceholder.typicode.com/posts')
.pipe(map(res => res.json()));
}
}

答案 3 :(得分:0)

使用

.pipe(map((res) => res.data))

代替

.map((res) => res.data)