31 lines
		
	
	
		
			700 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			700 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import { Injectable } from '@angular/core'; | ||
|  | 
 | ||
|  | export class Crisis { | ||
|  |   constructor(public id: number, public name: string) { } | ||
|  | } | ||
|  | 
 | ||
|  | const CRISES: Crisis[] = [ | ||
|  |   new Crisis(1, 'Dragon Burning Cities'), | ||
|  |   new Crisis(2, 'Sky Rains Great White Sharks'), | ||
|  |   new Crisis(3, 'Giant Asteroid Heading For Earth'), | ||
|  |   new Crisis(4, 'Procrastinators Meeting Delayed Again'), | ||
|  | ]; | ||
|  | 
 | ||
|  | const FETCH_LATENCY = 500; | ||
|  | 
 | ||
|  | @Injectable() | ||
|  | export class CrisisService { | ||
|  | 
 | ||
|  |   getCrises() { | ||
|  |     return new Promise<Crisis[]>(resolve => { | ||
|  |       setTimeout(() => { resolve(CRISES); }, FETCH_LATENCY); | ||
|  |     }); | ||
|  |   } | ||
|  | 
 | ||
|  |   getCrisis(id: number | string) { | ||
|  |     return this.getCrises() | ||
|  |       .then(heroes => heroes.find(hero => hero.id === +id)); | ||
|  |   } | ||
|  | 
 | ||
|  | } |