У меня есть эта функция, я пытаюсь получить любимые фильмы с определенной конечной точки, используя угловую. После получения всего списка фильмов из метода класса, когда я пытаюсь использовать этот список, я вижу, что список недоступен.
Это то, что я пробовал.
import { Injectable } from '@angular/core';
import {HttpClient} from '@angular/common/http'
import {Observable} from 'rxjs'
import { map, tap } from 'rxjs/operators';
import { IMovie } from './welcome/welcome-page/movies-model';
@Injectable({
providedIn: 'root'
})
export class FavoriteMoviesService {
movieList: IMovie[];
constructor(private _http: HttpClient) {
}
getFavMovies(id: number) {
let getMovies = () => {
return this._http.get('../assets/movies.json').pipe(
tap(response => console.log(response))
).subscribe(response => response = this.movieList)
}
getMovies();
let chosenMovie = this.movieList? this.movieList.find(movie => movie.id == id): Array(null)
console.log(chosenMovie)
}
}
Я действительно не понимаю, как работает программа, я думал, что свойство movieList было установлено при вызове функции getMovies (), но локальная переменная selectedMovie не получает желаемого значения. Пожалуйста, какое-нибудь объяснение этого поведения?