Я предоставляю HTTP-запрос GET через службу, и несколько компонентов используют эти данные (данные профиля для пользователя). Я хотел бы, чтобы первый запрос компонента фактически выполнял HTTP-запрос GET на сервер и кэшировал результаты, чтобы последующие запросы использовали кэшированные данные вместо того, чтобы снова называть сервер.
Вот пример службы, как бы вы рекомендовали реализовать этот уровень кэша с Angular2 и typescript.
import {Inject, Injectable} from 'angular2/core';
import {Http, Headers} from "angular2/http";
import {JsonHeaders} from "./BaseHeaders";
import {ProfileDetails} from "../models/profileDetails";
@Injectable()
export class ProfileService{
    myProfileDetails: ProfileDetails = null;
    constructor(private http:Http) {
    }
    getUserProfile(userId:number) {
        return this.http.get('/users/' + userId + '/profile/', {
                headers: headers
            })
            .map(response =>  {
                if(response.status==400) {
                    return "FAILURE";
                } else if(response.status == 200) {
                    this.myProfileDetails = new ProfileDetails(response.json());
                    return this.myProfileDetails;
                }
            });
    }
}