私はHttp約束の代わりにObservableを使うことに決めました。Angular2でObservableでidの配列の要素を見つける方法
私の約束サービスが見えた方法です:
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));
}
}
まず私は映画の配列を取得し、私は、IDで配列の特定の映画を見つけるより。しかし、私がObservableで同じことをしようとすると、findのエラー通知が出ます:プロパティ 'find'は型 'Movie []'に存在しません。ここで
は私が観察サービスと試みたものです:
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));
}
}
どのように私はちょうど私の約束サービスのように、私の観察可能なサービスで同じ機能を実現することができますか?
*プロパティ '検索' のタイプに存在しません[ムービー[] *は型エラーを返す
subscribe
のmap
メソッドを使用する必要がありますと仮定しますTS構成が間違っているためです。 'lib:['es6']'オプションが必要です。 – estusあなたは正しいです。私はそれを変更し、それは今見つけると動作します。ありがとう。 – GaborH