Это не то, как вы должны иметь дело с асинхронными вызовами. Причина в том, что (вкратце) механизм JavaScript сначала выполняет синхронный код, а затем выполняет асинхронный код.
В идеале вам следует подождать, пока они не выполнят, и поместить желаемую работу в функцию обратного вызова. Так что здесь вы можете либо
- вызовите свой код внутри
.then
из Book.get()
функции
- Или связать обещание и набрать нужный код.
// 1. First way
var getBook = Book.get({id:$stateParams.id,min:0,max:3}).$promise.then(function(data){
vm.list=data;
// Put your code here
}).finally(function () {
});
// 2. Second way
getBook.then(function(){
vm.top= vm.list && vm.list.name;
});