Я новичок в angular, поэтому извиняюсь, если это было задано ранее или это простой вопрос, но я не могу обернуть его вокруг.
У меня есть функция в моем сервисе, подобная этой
checkRoomNameStatus: function()
{
var promises = [];
var emptyRooms = [];
DatabaseService.openDB().transaction(function(tx) {
tx.executeSql("SELECT * FROM report_rooms", [], function(a,b){
for(i = 0; i < b.rows.length; i++){
console.log('B', b.rows.item(i));
if(b.rows.item(i).name == '' || b.rows.item(i).name == null){
emptyRooms.push(b.rows.item(i));
}
promises.push(b.rows.item(i).id);
}
});
});
return $q.all(promises).then(function(){
return emptyRooms;
});
},
Его задача - составить список комнат, которые не имеют названия.Мне нужно дождаться завершения цикла for, чтобы он проверял все комнаты, прежде чем продолжить, поэтому $q
.
Затем мне нужно вызвать мою функцию в контроллере и получить возвращенные результаты.
Когда я вызываю функцию в моем контроллере, как это
console.log(SyncService.checkRoomNameStatus());
, она возвращает следующий объект

Какойэто здорово, но как мне тогда извлечь из него массив значений?
Я знаю, что это как-то связано со способом возврата обещания, но я не могу его взломать!
Я попробовал следующие методы
console.log('1',SyncService.checkRoomNameStatus());
console.log('2',SyncService.checkRoomNameStatus().$$state.value);
console.log('3',SyncService.checkRoomNameStatus().value);
console.log('4',SyncService.checkRoomNameStatus().value());
SyncService.checkRoomNameStatus().then(function(value){
console.log(value);
})
Но я просто не могу получить доступ к этому массиву значений в моем контроллере!Может кто-нибудь объяснить, где я иду не так и как я должен правильно подойти к этому?
Заранее спасибо!