Angular 5到6升级:Observable类型中不存在属性"map"

Kay*_*Kay 18 rxjs angular

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

  const request = this.evidenceService.get().map((res) => res.data)
                .catch(error => Observable.of(null));
Run Code Online (Sandbox Code Playgroud)

"Observable"类型中不存在属性"map".

Jen*_*ger 52

操作员链接已转换为在RXJS v6中使用.pipe(),您应该遵循推荐的RXJS迁移路径.此外,catch运算符已重命名为catchError.

现在应该如何完成:

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


Dul*_*han 26

根据https://www.academind.com/learn/javascript/rxjs-6-what-c​​hanged/

在过去

import 'rxjs/add/operator/map'

myObservable
  .map(data => data * 2)
  .subscribe(...);
Run Code Online (Sandbox Code Playgroud)

现在

import { map } from 'rxjs/operators';

myObservable
  .pipe(map(data => data * 2))
  .subscribe(...);
Run Code Online (Sandbox Code Playgroud)


Gre*_*uFn 6

这解决了我的问题, 这里是代码:

import { map } from "rxjs/operators";
Run Code Online (Sandbox Code Playgroud)

**********************************************实施例**下面**************************************

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