Angular: $q.defer() vs $q()

Viewed 1678

In Angular, the following snippets seem to be equivalent:

let deferred = $q.defer();
if(whatever) {
   deferred.resolve('something');
}
else {
   deferred.reject('nah');
}
return deferred.promise;

and

return $q((resolve,reject) => {
    if(whatever) {
       resolve('something');
    }
    else {
       reject('nah');
    }
});

My question: if they aren't equivalent, how do they differ? If they are equivalent, is there a compelling reason for preferring one over the other?

3 Answers
Related