gpt4 book ai didi

angular - RxJS 'Map' 运算符在 Angular 6 中不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 22:03:50 25 4
gpt4 key购买 nike

我正在尝试使用 RxJS 中的 map 运算符,但它会抛出一个错误提示

Property 'map' does not exist on type 'Observable'.

这是代码

    import { Injectable } from "@angular/core";
import { Http } from "@angular/http";
import "rxjs/add/operator/map";
@Injectable()

export class DataService {
constructor(public http: Http) {}

getData() {
return this.http
.get("https://jsonplaceholder.typicode.com/users")
.map(res => res.json());
}
}

最佳答案

首先 Http 在高于 Angular 4 的版本中被弃用。您需要使用 HttpClient"@angular/common/http" 中的 HttpClientModule 来代替它。使用 HttpClient 您将获得 JSON 解析结果,因此您不再需要 res.json()

RxJS 的新版本中的第二个 map 正在以另一种方式使用。它现在可以通过管道传输,您需要将它与 pipe 结合使用。

import { Injectable } from "@angular/core";
import { HttpClient} from "@angular/common/http";

@Injectable()
export class DataService {
constructor(public httpClient: HttpClient) {}

getData() {
return this.httpClient
.get("https://jsonplaceholder.typicode.com/users")
}
}

使用map操作符

import { map } from 'rxjs/operators';

...

someFunction() {
this.httpClient.get("https://jsonplaceholder.typicode.com/users")
.pipe(map(res) => something with res);
}

...

关于angular - RxJS 'Map' 运算符在 Angular 6 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51905697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com