У меня есть угловая функция:Как запустить функцию, когда другая функция завершена?
$scope.addMovie = function(movie){
addMovieRecord(movie)
addMovieCredits(movie)
}
И два Javascript функции:
var addMovieRecord = function (movie){
createMovie.create({
id: $scope.movieListID.id,
release_date: releaseNL.release_date,
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
})
}
И
var addMovieCredits = function (movie){
movieService.loadMovies().then(function(response) {
$scope.moviesCheck = response.data;
}
Так что, когда я запустить функцию $scope.addMovie
он должен первым стрелять функцию addMovieRecord
которая создает видеозапись. Затем createMovie
должен запустить addMovieCredits
для загрузки всех записей.
Но этого не происходит. addMovieCredits
возвращает все записи, кроме только что созданного. Так это выглядит, как порядок не является правильным,
Если я стрелять addMovieCredits (movie)
непосредственно после функции создания он делает загрузить все записи,
createMovie.create({
id: $scope.movieListID.id,
release_date: releaseNL.release_date,
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
}).then(addMovieCredits(movie));
Но это не то, что я хочу. Я хочу загрузить записи фильма после завершения функции добавления.
Любые предложения о том, как это сделать?
* обновление *
Это служба createMovie,
app.factory('createMovie', ['$http', function($http){
return{
create: function(movie){
return $http.post('/movies.json', movie);
}
};
}]);
Вы вызываете функцию 'loadMovies (movie)' перед выполнением 'createMovie.create'. Вы должны передать ссылку или анонимную функцию, которая выполняет 'loadMovies (movie)'. – A1rPun
Насколько я понял ваш код, вы можете написать ''}). Then (loadMovies); '' – styopdev
@styopdev вы имеете в виду после вызова createMovie.create? Разве это не то, что у меня есть в моем примере? –