优化链路
This commit is contained in:
parent
cb4dcd87cf
commit
a83907fc05
@ -10,6 +10,8 @@ export const SOCIAL_BI_TZ = DEFAULT_TIME_ZONE;
|
|||||||
|
|
||||||
export function useSocialBiData(filters) {
|
export function useSocialBiData(filters) {
|
||||||
const [master, setMaster] = useState(null);
|
const [master, setMaster] = useState(null);
|
||||||
|
// 数据请求等 master 结果落地后再发:否则会先用兜底 App 列表打一轮,master 到达后立刻重打一轮(整轮浪费)。
|
||||||
|
const [isMasterSettled, setIsMasterSettled] = useState(false);
|
||||||
const [overview, setOverview] = useState(null);
|
const [overview, setOverview] = useState(null);
|
||||||
const [kpi, setKpi] = useState(null);
|
const [kpi, setKpi] = useState(null);
|
||||||
const [isLoading, setIsLoading] = useState(true);
|
const [isLoading, setIsLoading] = useState(true);
|
||||||
@ -29,6 +31,11 @@ export function useSocialBiData(filters) {
|
|||||||
if (!ignore) {
|
if (!ignore) {
|
||||||
setMaster(null);
|
setMaster(null);
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
if (!ignore) {
|
||||||
|
setIsMasterSettled(true);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return () => {
|
return () => {
|
||||||
ignore = true;
|
ignore = true;
|
||||||
@ -50,6 +57,9 @@ export function useSocialBiData(filters) {
|
|||||||
}, [filters.apps, master]);
|
}, [filters.apps, master]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (!isMasterSettled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const sequence = ++requestSeq.current;
|
const sequence = ++requestSeq.current;
|
||||||
const startMs = rangeStartMs(range, SOCIAL_BI_TZ);
|
const startMs = rangeStartMs(range, SOCIAL_BI_TZ);
|
||||||
const endMs = rangeEndMs(range, SOCIAL_BI_TZ);
|
const endMs = rangeEndMs(range, SOCIAL_BI_TZ);
|
||||||
@ -85,7 +95,7 @@ export function useSocialBiData(filters) {
|
|||||||
setErrors(nextErrors);
|
setErrors(nextErrors);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
});
|
});
|
||||||
}, [appCodes, range, refreshToken]);
|
}, [appCodes, isMasterSettled, range, refreshToken]);
|
||||||
|
|
||||||
const refresh = useCallback(() => {
|
const refresh = useCallback(() => {
|
||||||
setRefreshToken((current) => current + 1);
|
setRefreshToken((current) => current + 1);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user