IK
Size: a a a
IK
IK
IK
M
IK
IK
M
j
V
v
DP
TV
IK
N
M
PD
"error": "too_many_requests",
"details": {
"timeout": 4192
}
const limit = process.env.mediaInfoRequestRepeatLimit;
const limitedStatus = ErrorStatus.TOO_MANY_REQUESTS;
const [startTime, setStartTime] = useState(0);
const [prevErrorState, setPrevErrorState] = useState(null);
const getCurrentTime = () => Math.floor(new Date().getTime() / 1000);
useEffect(() => {
if (error !== null) {
if (error !== prevErrorState) {
if (prevErrorState === limitedStatus) {
setIsLimitReached(false);
setStartTime(0);
}
if (error === limitedStatus) {
setStartTime(getCurrentTime());
}
setPrevErrorState(error);
} else if (error === limitedStatus) {
const currentTime = getCurrentTime();
if (currentTime >= startTime + limit) {
setIsLimitReached(true);
}
}
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [error]);
YS
AF
AF