33 lines
		
	
	
		
			653 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			653 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import { Injectable } from '@angular/core'; | ||
|  | 
 | ||
|  | export class Hero { | ||
|  |   constructor(public id: number, public name: string) { } | ||
|  | } | ||
|  | 
 | ||
|  | const HEROES: Hero[] = [ | ||
|  |   new Hero(11, 'Mr. Nice'), | ||
|  |   new Hero(12, 'Narco'), | ||
|  |   new Hero(13, 'Bombasto'), | ||
|  |   new Hero(14, 'Celeritas'), | ||
|  |   new Hero(15, 'Magneta'), | ||
|  |   new Hero(16, 'RubberMan') | ||
|  | ]; | ||
|  | 
 | ||
|  | const FETCH_LATENCY = 500; | ||
|  | 
 | ||
|  | @Injectable() | ||
|  | export class HeroService { | ||
|  | 
 | ||
|  |   getHeroes() { | ||
|  |     return new Promise<Hero[]>(resolve => { | ||
|  |       setTimeout(() => { resolve(HEROES); }, FETCH_LATENCY); | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   getHero(id: number | string) { | ||
|  |     return this.getHeroes() | ||
|  |       .then(heroes => heroes.find(hero => hero.id === +id)); | ||
|  |   } | ||
|  | 
 | ||
|  | } |