0

Как преобразовать запросы, подобные приведенным ниже, к Угловой службе, которая вернет обе обещание, которое разрешило бы result или result сам без обещаний? Я предполагаю, что мне нужно как-то переложить обещания, но не могу понять, как это сделать, никогда не делал этого.Выполнение угловых сервисов для сложных запросов Firebase

var result = []; 
var groups = $firebaseArray(firebase.database().ref().child("users/" + uid + "/leagues")); 
groups.$loaded().then(function (data) { 
    _.each(data, function(one){ 
    firebase.database().ref().child('leagues/' + one.$id).once('value', function(snapshot) { 
     result.push(snapshot.val()); 
    }); 
    }); 

} 

ответ

2

Это что-то вроде этого, что вы хотите?

function getGroups() { 
 
    return $firebaseArray(firebase.database().ref().child("users/" + uid + "/leagues")).$loaded(); 
 
} 
 

 
function getDataGroups(groups) { 
 
    return $q.all(groups.map(function(one) { 
 
    return firebase.database().ref().child('leagues/' + one.$id).once('value'); 
 
    })); 
 
} 
 

 
getGroups().then(getDataGroups).then(function(results) { 
 
    //blabla 
 
});

Примечание: Я никогда не играл с firebase (так что, возможно я сделал некоторые ошибки), но после некоторого быстрого исследования $loaded() и once() оба возвращают обещание.

+0

То, что мне нужно, спасибо. –