Возврат массива с использованием Firebase

Попытка найти наилучший пример возврата массива данных вNode.js с библиотекой Q (или любой подобной библиотекой, я не частичная) при использовании Firebase.on("child_added");

Я пытался использоватьQ.all() но, кажется, никогда не ждать, пока обещания будут выполнены, прежде чем вернуться. Это мой текущий пример:

function getIndex()
{
    var deferred = q.defer();

    deferred.resolve(new FirebaseIndex( Firebase.child('users').child(user.app_user_id).child('posts'), Firebase.child('posts') ) );

    return deferred.promise;
}

function getPost( post )
{
    var deferred = q.defer();
    deferred.resolve(post.val());
    return deferred.promise;
}

function getPosts()
{
    var promises = [];          

    getIndex().then( function (posts) {
        posts.on( 'child_added', function (_post) {
            promises.push( getPost(_post) );
        });
    });
    return q.all(promises);
}

Ответы на вопрос(1)

Ваш ответ на вопрос