Ich verwende $q
, um ein Versprechen um einen Legacy-Callback zu wickeln. Der vorhandene Rückruf hat jedoch keinen zurückzugebenden Wert. Es benötigt eine Erfolgsfunktion ohne Parameter.Erstellen Sie ein AngularJS-Versprechen mit keinem Rückgabewert
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;
}
});
kann ich keine void
Version von resolve
in dem AngularJS docs finden. Ich kann einen Dummy-Wert zurückgeben, aber dann könnten Clients auf diesen Dummy-Wert zugreifen, was zu Verwirrung führen würde.
Wie erstelle ich ein AngularJS Versprechen ohne Rückgabewert?
HINWEIS: Die Frage AngularJS promise returning empty object ist komplett anders. Diese Frage gibt einen Wert in der resolve
-Funktion zurück.
Nur mit nichts auflösen. 'Deferred.resolve()'? – PSL
@PSL Ist das möglich? Die Doktoren erwähnen es nicht. – metacubed
Ja, Sie können ohne Wert auflösen. Probieren Sie es aus und sehen Sie, was passiert. :) http://plnkr.co/edit/BpYqlg?p=preview – PSL