Я использую несколько внешних баз данных, чтобы получить данные, необходимые для создания записи, которую я хочу в моей базе данных. У меня есть приложение, в котором пользователи могут искать и добавлять фильм в свой список наблюдения.Как связать несколько вызовов http в Angular
Для этого мне нужны следующие данные,
- Данные фильмы, такие как название, дата выпуска, и ид.
- Оценка imdb.
- Кинофильмы, такие как актеры и режиссеры.
Это, как я делаю это сейчас,
movieAdd.add(movie.id).then(function(response){
$scope.movieListID = response;
movieAdd.imdbRating($scope.movieListID.imdb_id).then(function(response){
$scope.movieImdbRating = response;
movieAdd.crew(movie.id).then(function(response){
$scope.movieCredits = response
return createMovie.create({
id: $scope.movieListID.id,
imdb_rating: $scope.movieImdbRating.imdbRating,
title: $scope.movieListID.original_title,
image: $scope.movieListID.poster_path,
movie_id: $scope.movieListID.id,
backdrop: $scope.movieListID.backdrop_path,
overview: $scope.movieCredits.overview
})
})
})
})
я называю обслуживание, возврат магазину ответ в объеме, так что я могу использовать его в дальнейшем, и так далее.
Это правильный способ сделать это, или есть лучший способ?
Технически ничего плохого в подходах нет, но я бы предложил вам сгладить цепи обещаний - http://solutionoptimist.com/2013/12/27/javascript-promise-chains-2/ UPDATE: ответ Martijn Welkers - хороший пример , – tiblu