在 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 });