в угловых 4 сервисных .map функция не работает - PullRequest
0 голосов
/ 03 ноября 2018

Я новичок в Angular 7. Я использую 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 (...). Карта не является функцией

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

this.http.get вернет наблюдаемое. Вы не можете сделать map для наблюдаемого. Вам нужно .subscribe к наблюдаемому, преобразовать результат в JSON и затем сделать .map для него.

Пример: this.http.get('url').subscribe(res => res.json()).map(x => { // do something with x });

0 голосов
/ 03 ноября 2018

Вам нужно увидеть канал, так как вы используете последнюю версию RxJS.

return this.http.get('http://jsonplaceholder.typicode.com/users')
    .pipe(
       map(res => res.json())
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...