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));
 | |
|   }
 | |
| 
 | |
| }
 |