背景
在正常业务中经常会出现一些例如环境校验的逻辑,环境判断又来源于后端,前端需要根据环境处理不同逻辑,这个时候就需要封装一个公共能力,并且能做到前端无感知调用。
一个全局能力的封装。内容只写了一个简单的业务逻辑处理,基于 react。
简略代码实现
/**
* 请求数据源
*/
const PromiseSingleton = new Promise(async (resolve, reject) => {
try {
const getSomething = await getSomeRequest();
resolve(getSomething);
}catch (e) {
reject(e);
}
});
/**
* 校验某个环境,
*/
export const hasSomeAuth = async () => {
try {
const value = await PromiseSingleton;
// 处理 value 本处省略
return true;
} catch (e) {
return false;
}
};
/**
* 封装hooks
*/
export const useSomeEnvCheckHooks = () => {
const [status, setStatus] = useState(false);
useEffect(() => {
checkAuth();
}, []);
const checkAuth = () => {
hasSomeAuth().then((res) => {
setStatus(res);
});
};
return status;
};
// 组件内部使用
const envCheck = useSomeEnvCheckHooks();