27 lines
774 B
TypeScript
27 lines
774 B
TypeScript
// #docregion
|
|
import { Injectable } from '@angular/core';
|
|
|
|
import { Observable } from 'rxjs/Observable';
|
|
import { of } from 'rxjs/observable/of';
|
|
import 'rxjs/add/operator/delay';
|
|
|
|
import { Hero, heroes } from './data-model';
|
|
|
|
@Injectable()
|
|
export class HeroService {
|
|
|
|
delayMs = 500;
|
|
|
|
// Fake server get; assume nothing can go wrong
|
|
getHeroes(): Observable<Hero[]> {
|
|
return of(heroes).delay(this.delayMs); // simulate latency with delay
|
|
}
|
|
|
|
// Fake server update; assume nothing can go wrong
|
|
updateHero(hero: Hero): Observable<Hero> {
|
|
const oldHero = heroes.find(h => h.id === hero.id);
|
|
const newHero = Object.assign(oldHero, hero); // Demo: mutate cached hero
|
|
return of(newHero).delay(this.delayMs); // simulate latency with delay
|
|
}
|
|
}
|