RsJX 'Map' 运算符在 Angular 6 中不起作用
RsJX 'Map' operator is not working in Angular 6
我正在尝试使用 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);
}
...
import { Injectable } from "@angular/core";
import { map } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DataService {
constructor(private http: HttpClient) {}
getData() {
return this.http
.get("https://jsonplaceholder.typicode.com/users")
.map(res => res.json());
}
}
在 RXJS 6 中 import { map } from 'rxjs/operators';
import { map } from 'rxjs/operators';
getData() {
return this.http.get("https://jsonplaceholder.typicode.com/users")
.pipe(
map(res => res.json())
);
}
我正在尝试使用 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);
}
...
import { Injectable } from "@angular/core";
import { map } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DataService {
constructor(private http: HttpClient) {}
getData() {
return this.http
.get("https://jsonplaceholder.typicode.com/users")
.map(res => res.json());
}
}
在 RXJS 6 中 import { map } from 'rxjs/operators';
import { map } from 'rxjs/operators';
getData() {
return this.http.get("https://jsonplaceholder.typicode.com/users")
.pipe(
map(res => res.json())
);
}