在 angular 4 服务 .map 功能不工作
in angular 4 service .map function did not wok
我是 angular 7.I 的初学者,正在使用 angular 7 创建一些应用程序。在服务中,我导入了地图,但没有用。我该如何解决?这是服务文件的代码。
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Http } from '@angular/http';
import { map } from 'rxjs/operators';
@Injectable()
export class DataService {
users: string[];
data: Observable<Array<number>>;
constructor(public http: Http) {
this.users = ['supun' , 'madhushi' , 'kennady' , 'sachini'];
}
getUsers() {
return this.users;
}
getUsers1() {
return this.http.get('http://jsonplaceholder.typicode.com/users')
.map(res => res.json());
}
getData() {
this.data = new Observable(observer => {
setTimeout(() => {
observer.next(1);
}, 1000);
setTimeout(() => {
observer.next(2);
}, 2000);
setTimeout(() => {
observer.next(3);
}, 3000);
setTimeout(() => {
observer.next('hello');
}, 4000);
setTimeout(() => {
observer.complete();
}, 5000);
});
return this.data;
}
}
错误是 this.http.get(...)。map 不是函数
您需要查看管道,因为您使用的是最新版本的 RxJS。
return this.http.get('http://jsonplaceholder.typicode.com/users')
.pipe(
map(res => res.json())
);
this.http.get
将 return 成为 Observable。您不能对可观察对象执行 map
。您需要 .subscribe
到可观察对象,将结果转换为 JSON,然后对其执行 .map
。
示例:
this.http.get('url').subscribe(res => res.json()).map(x => {
// do something with x
});
我是 angular 7.I 的初学者,正在使用 angular 7 创建一些应用程序。在服务中,我导入了地图,但没有用。我该如何解决?这是服务文件的代码。
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Http } from '@angular/http';
import { map } from 'rxjs/operators';
@Injectable()
export class DataService {
users: string[];
data: Observable<Array<number>>;
constructor(public http: Http) {
this.users = ['supun' , 'madhushi' , 'kennady' , 'sachini'];
}
getUsers() {
return this.users;
}
getUsers1() {
return this.http.get('http://jsonplaceholder.typicode.com/users')
.map(res => res.json());
}
getData() {
this.data = new Observable(observer => {
setTimeout(() => {
observer.next(1);
}, 1000);
setTimeout(() => {
observer.next(2);
}, 2000);
setTimeout(() => {
observer.next(3);
}, 3000);
setTimeout(() => {
observer.next('hello');
}, 4000);
setTimeout(() => {
observer.complete();
}, 5000);
});
return this.data;
}
}
错误是 this.http.get(...)。map 不是函数
您需要查看管道,因为您使用的是最新版本的 RxJS。
return this.http.get('http://jsonplaceholder.typicode.com/users')
.pipe(
map(res => res.json())
);
this.http.get
将 return 成为 Observable。您不能对可观察对象执行 map
。您需要 .subscribe
到可观察对象,将结果转换为 JSON,然后对其执行 .map
。
示例:
this.http.get('url').subscribe(res => res.json()).map(x => {
// do something with x
});