Existe alguma diferença em fazer:
service.cadastrar = function(foto) {
return $q(function(resolve, reject) {
// Resto do código
});
};
ao invés de:
service.cadastrar = function(foto) {
return new Promise(function(resolve, reject) {
// Resto do código
});
};