So finden Sie ein element von einem array von id mit Beobachtbaren in Angular2

Beschloss ich, Beobachten statt Http verspricht.

So mein Versprechen-Dienst sah:

export class MovieService {

    movies: Movie[]
    movie: Movie;
    constructor(private http:Http) { }

   getMovies(): Promise<Movie[]>{

        return this.http.get('http://api.request.com')
            .toPromise()
            .then((res:Response) => res.json()['results'])

    }
    getMovie(id: number): Promise<Movie> {
        return this.getMovies()
            .then(movies => movies.find(movie => movie.id == id));

    }

}

Zuerst Hole ich meine ein array von Filmen, und als ich die Suche nach einem bestimmten Film von dem array von id. Jedoch, wenn ich versuche, das gleiche zu tun mit Beobachten, bekomme ich eine Fehler Meldung finden Sie auf: Anwesen mit 'find' existiert nicht auf den Typ " Movie[]'.

Hier ist, was ich versucht habe mit den Beobachtbaren service:

export class MovieService {

    movies: Movie[];
    movie: Movie;

    constructor(private http: Http) {
    }

    getMovies(): Observable<Movie[]> {

        return this.http.get('http://api.request.com)
            .map((res: Response) => res.json()['results']);
    }

    getMovie(id: number): Observable<Movie> {
        return this.getMovies()
            .subscribe(movies => movies.find(movie => movie.id == id));
    }
}

Wie kann ich erreichen, die gleiche Funktionalität in meinem Beobachtbaren service genau wie in meiner Versprechen service?

  • Eigentum 'finden' existiert nicht auf den Typ " Movie[] ist der Typ Fehler, weil die TS-Konfiguration ist falsch. Es sollte lib: ['es6'] option.
  • Du hast Recht. Das habe ich geändert und es funktioniert mit der jetzt suchen. Danke.
InformationsquelleAutor GaborH | 2016-11-08
Schreibe einen Kommentar