Search code examples
angularjspromiseangular-routingtrello

Angulajs wait till REST API returns data


I am using Trello API, which does not return promise. It has callback functions. I want to write a wrapper to it, which will wait till callback is executed and return the data. I have written below code :

 function getLoggedInMember() {
    var deferred = $q.defer();
    Trello.members.get("me", deferred.resolve);
    deferred.promise.then(function (user) {
        return user;
    });
}

This function is in my Member Service. Below is my routeConfig :

angular.module('trelloDashboard').config(['$routeProvider', function ($routeProvider) {
$routeProvider
 .when('/', {
     templateUrl: 'Views/Login.html',
     controller: 'LoginController'
 })
 .when('/Dashboard', {
     templateUrl: 'Views/Dashboard.html',
     controller: 'DashboardController',
     resolve: {
         user: function (MemberService) {
             return MemberService.getLoggedInMember();                 
         }
     }
 });}]);

This is obviously not working. Is there a way to achieve what I am trying to do here? Thank you.


Solution

  • Here is what worked!

      function getLoggedInMember() {
        var deferred = $q.defer();
        Trello.members.get("me", function(user){ deferred.resolve(user); });
        return deferred.promise;
    }
    

    No change was needed in route config. Thank you, @Benjamin :)