zy-react-library/hooks/useGetUserInfo/index.js

50 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2025-11-08 15:59:04 +08:00
import { request } from "@cqsjjb/jjb-common-lib/http";
import { useState } from "react";
/**
* 获取用户信息
*/
function useGetUserInfo(returnType = "object") {
// loading状态
const [loading, setLoading] = useState(false);
// 用于跟踪进行中的请求数量(不暴露给外部)
let requestCount = 0;
2025-11-08 15:59:04 +08:00
// 获取用户信息
const getUserInfo = () => {
// 增加请求数量并设置loading状态
requestCount++;
if (requestCount > 0) {
setLoading(true);
}
2025-11-08 15:59:04 +08:00
return new Promise((resolve, reject) => {
// 发送请求
request(
"/basic-info/user/getInfo",
"get",
{},
)
.then((res) => {
resolve(res.data);
})
.catch((err) => {
reject(err);
})
.finally(() => {
// 减少请求数量并在没有进行中的请求时设置loading为false
requestCount--;
if (requestCount <= 0) {
setLoading(false);
}
2025-11-08 15:59:04 +08:00
});
});
};
if (returnType === "array")
return [loading, getUserInfo];
return { loading, getUserInfo };
}
export default useGetUserInfo;