Versprechen erstellen in AngularJS

Ich versuche, in Angular ein Versprechen mit dem Dienst $ q zu erstellen. Es gibt ein Objekt zurück, das von einem Webdienst abgerufen wurde. Befindet sich das Objekt im Cache, gibt es es zurück, ohne den Webdienst aufzurufen.

Das Problem ist, dass die beiden Auflösungen aufgerufen werden.

Vielleicht, verwende ich ein Versprechen Anti-Muster?

Hier ist mein Code:

    function returnMapAsync() {

  return $q(function (resolve, reject) {
    if (navigationMap) {
      resolve(navigationMap);
    } else {
      ServerRequest.getNavigationMap().then(function (data) {
        navigationMap = data.object;
        resolve(navigationMap);
      });
    }
  });
}

Vielen Dan

Antworten auf die Frage(4)

Ihre Antwort auf die Frage