Angular2 - GET i POST w jednej metodzie

0

Cześć,

Zacząłem ogarniać Angulara2, robiąc na początku TODO app. Natrafiłem na problem:

Chciałbym po kliknięciu na przycisk "Add" na stronie pobrać JSONa z bazy danych IMDB. Mając tego JSONa chciałbym od razu zapisać go w mojej lokalnej bazie danych. Mam takie dwie metody:

 createMovietoDatabase(id: string): Promise<Movie> {
        return this.http
            .post('localhost/api/movies/', JSON.stringify(this.result), { headers: this.headers })
            .toPromise()
            .then(res => res.json())
            .catch(this.handleError);
    }
getMovieFromImdb(id: string): Promise<Movie> {
        const url = `'imdb.com/api/movies/${id}`;
        return this.http.get(url)
            .toPromise()
            .then(response => response.json() as Movie)
            .catch(this.handleError);
    } 

Czyli chciałbym połączyć te metody w jedno. Czy w ogóle dobrze się do tego zabieram? Zaznaczam, że słabo ogarniam JS/Angulara. Zamiast przeczytać mądre książki od razu zacząłem od projektu no i utknąłem. Pomoże ktoś?

0

przecież to co zwrócone jest z api nie musisz od razu zwracać z metody tylko wczytaj do zmiennej. Innymi słowy zamiast return daj

var zmienna = 
2
getMovieFromImdb('przeminelo_z_wiadrem').then ( movie=> createMovieToDatabase( 'przeminelo_z_wiadrem', movie);

Co wymaga aby metoda createMovie była zrobiona raczej tak:

createMovietoDatabase(id: string, movieData:any): Promise<Movie> {
        return this.http
            .post('localhost/api/movies/', JSON.stringify(movieData), { headers: this.headers })
            .toPromise()
            .then(res => res.json())
            .catch(this.handleError);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1