gpt4 book ai didi

angularjs - 保存当前用户信息,并在 Controller 中使用

转载 作者:行者123 更新时间:2023-12-03 09:31:48 24 4
gpt4 key购买 nike

我有以下 Angular 服务:

angular.module("app").factory("userService", userService);

userService.$inject = ["$http"];

function userService($http) {
return {
getAuthenticatedUserInfo: function () {
return $http.get("/api/v1/users/me");
}
}
}

我正在获取有关当前用户的信息,例如 Id、姓名...

我想在我的 Controller 中使用此信息,但我不想在每次需要该信息时调用 API (getAuthenticatedUserInfo) ...这有意义吗?

在其他 Controller 中使用此信息的最佳选择是什么?

最佳答案

在服务中创建一个局部变量并将用户存储在其中。仅当局部变量未定义时才执行 HTTP 调用。为确保您始终返回 promise ,无论本地用户是否可用,请使用 $q 的 when 函数:

angular.module("app").factory("userService", userService);

userService.$inject = ["$http", "$q"];

function userService($http, $q) {

var currentUser;
return {
getAuthenticatedUserInfo: function () {
if (currentUser){
return $q.when(currentUser);
} else {
return $http.get("/api/v1/users/me").then(function(response) {
currentUser = response.data;
return response.data;
});
}

}
}
}

PS从不使用全局变量

关于angularjs - 保存当前用户信息,并在 Controller 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36645399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com