Search code examples
jqueryangularjsdeferred

what is the difference between deferred.resolve(data); and deferred.resolve(); in angularJS service calls?


I found 2 variation like 1. deferred.resolve(); 2. deferred.resolve(data);

after service response. What is the difference between 2. Which one I have to use strictly.


Solution

  • First scenario:

    function getPromise() {
        var deferred = $q.defer();
        deferred.resolve();
    
        return deferred.promise;
    }
    
    getPromise().then(
        function(data) {
            console.log(data); // Output "undefined"
        }
    );
    

    Second scenario:

    function getPromise() {
        var deferred = $q.defer();
        var data = "hello";
        deferred.resolve(data);
    
        return deferred.promise;
    }
    
    getPromise().then(
        function(data) {
            console.log(data); // Output "'hello'"
        }
    );
    

    So it all about on how you resolve the promise, with or without passing information to the function in the resolved promise.