2016-09-27 94 views
0

我正在部分從this發帖和this回答。已被拒絕解決承諾未抓到

我有這樣的路線:

user.isAdmin看起來是這樣的:

isAdmin: function() { 
    return this.getProfile().then(function(data){ 
     // then return the response. 
     if(data.isadmin) { 
      return true; 
     } 
     else { 
      return $q.reject(false); 
     } 
    }); 
}, 

到目前爲止,我所知道的,一切正常了這一點。根據用戶的不同,isAdmin()確實會返回正確的響應。

事情剛開始去錯在這裏:

$rootScope.$on("$stateChangeError", function (event, current, previous, rejection) { 
    console.log("Is this thing on?"); 
}); 

如果.isAdmin()拒絕承諾,應該有一個$stateChangeEror,對不對?但在我的代碼中,這並沒有發生。 console.log("Is this thing on?")行永遠不會到達。沒有錯誤,或任何東西。該頁面正常呈現。

我懷疑我在一個承諾的地方被弄髒了(這總是我被弄壞的地方),但我沒有看到它。

任何幫助?謝謝。

回答

1

我發現這個問題:

access: function(user){return user.isAdmin().$promise} 

本來應該是這樣的:

access: function(user){return user.isAdmin()} 

我上面鏈接聲稱,我需要有$promise,以確保resolve等待功能向早報回報它的承諾,但似乎並非如此。