Возврат значения внутри цикла foreach в Firebase и AngularJS

У меня есть такая функция:

$scope.doesUserLike = function(entryID, userID) {
    var userLike = false;
    $scope.likesRef.on('value', function(snap) {
        snap.forEach(function(like) {
            if(like.val().entryID == entryID && like.val().userID == userID) {
                userLike = true;
                console.log(userLike);
            }
        });
    });
    console.log(userLike);
    return userLike;
}

Консоль выводит true внутри цикла foreach, но вне цикла foreach выводит false, я также пробовал $scope.userLike с тем же результатом.


person Jordash    schedule 09.02.2016    source источник
comment
Ваши данные загружаются асинхронно. К моменту запуска внешнего console.log данные еще не загружены. См. stackoverflow.com/questions/ 27049342/   -  person Frank van Puffelen    schedule 09.02.2016
comment
Я попробовал решение в другом вопросе, и, похоже, оно не работает для цикла forEach, все мои назначения переменных работают, если они не находятся в цикле forEach (который я использую для запроса по нескольким значениям)   -  person Jordash    schedule 09.02.2016