Angularjs Q Promise/Deferred Example
Last updated:Example
Here is an example of how to write a query component that uses AngularJs $q
and returns a Promise object that is resolved asynchronously.
angular.module('query')
.factory('Query', ['$resource', '$q',
function($resource, $q) {
var path = '/api/v1/queries';
var url = path + '/:id';
var Query = $resource(url, {id: '@id'},{
'update':{method:'PUT'}
});
Query.delete = function(query) {
// turn it into a deferred object
var deferred = $q.defer();
$.ajax({
url: path,
type: 'DELETE',
// crossdomain: true,
data: {id: query.id},
xhrFields: {withCredentials: true},
success: function(response) {
deferred.resolve();
},
error: function(response) {
deferred.reject();
},
});
// you return a promise
return deferred.promise;
};
return Query;
}
]);