Почему не работает map в Angular 4?

Добрый день!
Не могу вьехать, почему содержание response.json() пустой в Angular4 (Angular CLI). Подскажите, где косяк?

Код следующий:
import { Injectable } from '@angular/core';
import { Response } from '@angular/http';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map'
import {HttpClient, HttpHeaders} from "@angular/common/http";


@Injectable()
export class AuthenticationService {
    public token: string;

    constructor(private http: HttpClient) {
        var currentUser = JSON.parse(sessionStorage.getItem('currentUser'));
        this.token = currentUser && currentUser.token;

    }
login(username: string, password: string): Observable<boolean> {
        return this.http.post('http://apiserver.com/api/v1/login', JSON.stringify({ username: username, password: password })
            .map((response: Response) => {
            var token = response.json() && response.json().token;
            if (token) {
                // set token property
                this.token = token;
                localStorage.setItem('currentUser', JSON.stringify({username: username, currentUser: token}));
                return true;
            } else {
                return false;
            }
        }
    }
  • Вопрос задан
  • 432 просмотра
Решения вопроса 2
Для HttpClient не нужно использовать json()
var token = response && response.token
Ответ написан
search
@search
мама говорит что я особенный
HttpClient работает так, что в функцию map прилетит уже готовый распаршенный json ответ, а не Response.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы