1
我有以下功能。它不起作用,但想法是如果已經設置了sessionStorage
變量,請使用它。如果沒有,請致電該API,然後再次設置sessionVariable
。處理函數返回可能(或可能不是)異步
isAdmin: function() {
// hit the first page, or refreshed.
if(sessionStorage.getItem("isAdministrator") === null) {
AzureGroupService.get({adGroup: "Programmers"}).$promise.then(function (data) {
sessionStorage["isAdministrator"] === data.isMember;
return data.isMember;
});
}
else {
return JSON.parse(sessionStorage["isAdministrator"]);
}
}
所以這個函數可能會立即返回,或者它可能需要等待API。這是否接近正確的方式來做到這一點?
如果是這樣,我將如何在控制器中調用它?像這樣?
user.isAdmin().then(function(response) {
vm.test = response.data;
});
就是這樣。謝謝。儘管如此,我確實需要做一些小改動。我認爲它應該是'return $ q.when(JSON.parse(sessionStorage [「isAdministrator」]));'注意返回。 – crowhill
無需返回 –
如果我沒有返回,我會得到「TypeError:無法讀取屬性',然後'未定義。」從我對局勢的有限理解出發,我認爲這是有道理的。 'user.isAdmin()。然後(函數(響應)'期待一個承諾。沒有返回,沒有一個。 – crowhill