0
我有一個工廠對象,其中包含專用對象,它用於緩存使用工廠可用函數從API檢索結果。角廠存儲承諾結果
global.mainApp.factory('SessionFactory', function (UserEndpointsResource, SiteEndpointsResource) {
var data = {
/**
* @type {boolean|null}
*/
isLoggedIn: null
};
return {
isUserLoggedIn: function (callback) {
if (data.isLoggedIn != null) {
callback(data.isLoggedIn);
}
else {
UserEndpointsResource.isLoggedIn().$promise.then(function (res) {
var isUserLoggedIn = res.status == 1;
// Trying to set the result to the outer scope data variable
data.isLoggedIn = isUserLoggedIn;
callback(isUserLoggedIn);
}, function (failureData) {
data.isLoggedIn = false;
callback(false);
});
}
},
...
};
});
問題是,每次我調用isUserLoggedIn函數時,data.isLoggedIn始終爲空。
如何更改promise函數內的工廠數據對象?
謝謝。
有沒有機會實例化多個'SessionFactory's? – Bergi
Protip:[不存儲承諾結果,存儲承諾本身](http://stackoverflow.com/q/18744830/1048572) – Bergi
你是否檢查過你的代碼是否正在進入'data.isLoggedIn = isUserLoggedIn;'? –