我試圖將currentUser對象存儲在工廠中,以便可以在我的應用程序中訪問它。但是,只要我調用CurrentUserFactory.GetCurrentUser(),它就會返回null。我已經驗證過,一切都很好,服務器端正在接收用戶對象。但它總是返回null。角度工廠函數總是返回空
angular.module('myWebApp.services')
.factory('CurrentUserFactory', ['SettingsFactory', '$http', function(SettingsFactory, $http) {
var CurrentUserFactory = {};
var currentUser = null;
CurrentUserFactory.GetCurrentUser = function() {
if (!currentUser) {
$http.get(SettingsFactory.myAPIUrl + 'api/users/current', { withCredentials: true }).then(function (response) {
currentUser = response.data;
});
}
return currentUser;
}
return CurrentUserFactory;
}
]);
這是一個AJAX調用 - 你不能從它返回 - 喲你需要使用承諾或回調。 – tymeJV
您可以使用對象初始化您的'currentUser',然後將所有響應字段複製到該對象。然後你會得到最終用戶。 –
@tymeJV'.then'不是承諾嗎? – Legion