2016-06-20 5 views
0

Angenommen, wir diese Methode in einer Dienstleistung, die eine beobachtbare zurück:Wie man verspottete Daten in Observable zurückgibt?

getSearchResults(request: LocationSearchRequest){ 
     return this.http.get(this.getApiUrl(request)) 
      .map(res => <LocationSearchResponse> res.json())  
      .catch(this.handleError);  
} 

Wie kann ich diesen Code ändern Sie die verspottete Daten ratehr dann machen eine tatsächliche GET requesr zurückzukehren?

import { MOCKEDDATA } from './mocked-data'; 

Es ist keine doppelte Frage. Dies hat nichts mit Testen, Jasmin und Angualr2 Test API zu tun.

+0

Die Lösung wurde auf verwende Observable.of(); Warum ist es als doppelt markiert? Das hat nichts mit Testen, Jasmin und angular2 Test API zu tun. –

Antwort

1

Ich hatte das gleiche Thema vor einiger Zeit. Es ist auch möglich, das Verfahren zu verwenden:

Observable.create()

es durch den Code gelöst wurde unter (unter Verwendung von Typoskript):

getElementTemplateNames() : Observable<string[]> { 
let names : string[] = MockedElementData.getNames(); 
return Observable.create(observer => { 
    observer.next(names); 
    observer.complete(); 
});} 

MockedElementData hält die Daten.

Die Import-Anweisung für beobachtbar ist:

import { Observable } from "rxjs/Observable"; 
2

Sie tun können:

Observable.of(MOCKEDDATA)

Sie können auch eine Verzögerung add:

Observable.of(MOCKEDDATA).delay(1000)