Sto utilizzando $q
per racchiudere una promessa attorno a un callback legacy. Tuttavia, il callback esistente non ha un valore da restituire. Ci vuole una funzione di successo senza parametri.Creare una promessa AngularJS senza valore di ritorno
angular.module('MyModule').service('MyService', function() {
function initialize() {
var deferred = $q.defer();
LegacyFactory.initialize(
// 'void' Success Callback
function() {
deferred.resolve (/* WHAT DO I PUT HERE? */);
},
// Error Callback
function (errorCode) {
deferred.reject(errorCode);
});
return deferred.promise;
}
});
non riesco a trovare una versione di void
resolve
nelle AngularJS docs. Posso restituire un valore fittizio, ma i client potrebbero accedere a tale valore fittizio, il che causerebbe confusione.
Come si crea una promessa AngularJS senza valore di ritorno?
NOTA: la domanda AngularJS promise returning empty object è completamente diversa. Questa domanda restituisce un valore nella funzione resolve
.
Basta risolvere con niente .. 'deferred.resolve()'? – PSL
@PSL È possibile? I documenti non lo menzionano. – metacubed
Sì, è possibile risolvere senza alcun valore. Basta provare e vedere cosa succede .. :) http://plnkr.co/edit/BpYqlg?p=preview – PSL