Как решить $ q.all?

У меня есть 2 функции, обе возвращающие обещания:

    var getToken = function() {

        var tokenDeferred = $q.defer();         
        socket.on('token', function(token) {
            tokenDeferred.resolve(token);
        });
        //return promise
        return tokenDeferred.promise;
    }

    var getUserId = function() {
        var userIdDeferred = $q.defer();
        userIdDeferred.resolve('someid');           
        return userIdDeferred.promise;
    }

Теперь у меня есть список тем, которые я хотел бы обновить, как только эти два обещания будут решены

    var topics = {      
        firstTopic: 'myApp.firstTopic.',  
        secondTopic: 'myApp.secondTopic.',
        thirdTopic: 'myApp.thirdTopic.',
        fourthTopic: 'myApp.fourthTopic.',
    };

Решенные темы должны выглядеть следующим образомmyApp.firstTopic.someid.sometoken

var resolveTopics = function() {
    $q.all([getToken(), getUserId()])
    .then(function(){

        //How can I resolve these topics in here?

    });
}

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

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