2

AngularJS の $q を使用しています。単一のプロミスを作成し、そのプロミスが既に解決されている場合、再度解決できますか? これが可能かどうかはわかりませんが、そうでない場合は、同じ約束を何度も解決できる方法があります。通知方法を使用することを考えていましたが、これを行う他の方法があるかどうかはわかりません。

4

2 に答える 2

0

私が単にやったのは、次のように再び約束を再初期化することでした:

var appReadyDeferred = $q.defer();
this.prepareAppReadyDeffered = function() {
  appReadyDeferred = $q.defer();
};
this.appReady = function() {
  return appReadyDeferred.promise;
};
this.appResolve = function() {
  appReadyDeferred.resolve();
};
this.appDeferr = function() {
  appReadyDeferred.reject();
};

だから私は使うことができます

someService.appReady().then(function() {
   // some code
});

そして、それを使用して再起動します

someService.prepareAppReadyDeffered();

これが可能な限り最善の解決策かどうかはわかりませんが、うまくいくようです。

于 2013-10-09T09:19:05.220 に答える