Вот часть кода одного из моих контроллеров.
//service call to add record to database
//bookApi has addBook method which contains a $http.post inside
bookApi.addBook(book);
//service call to show list of all books
//bookApi has a getBooks method which contains $http.get call
bookApi.getBooks().then(function(response){
$scope.booklist = response.data;
},function(data,status,config,headers) {
alert('some error occured');
});
Что происходит, когда Booklist отображается на странице иногда getBooks называют заканчивается первым перед addBook, так как они оба асинхронным. SO на странице, когда книга представлена на странице «Добавить книгу», следующая страница, которая отображается на дисплее, представляет собой список страниц книг, который иногда не содержит недавно добавленную книгу (вам нужно будет обновить).
Как этого можно избежать?
Вам нужно будет связать вызов get с сообщением, иначе он будет обрабатывать их как async в любом порядке. Вы должны убедиться, что сообщение закончилось, прежде чем делать get –
'getBooks' должен быть вызван после завершения' bookApi.addBook (book) 'call using chaining. –