我试图在useEffect react挂钩中设置动态setInterval,因为我不想每x秒调用一次。 由于我正在处理实时视频,因此结束日期可能会在一段时间内发生变化,因此我添加了一个小方法“ onAirRequestInterval”以动态间隔查询API,如下所述:
const onAirRequestInterval = () => {
const programEndDate = new Date(program?.endTime).getTime();
const currentDate = Date.now();
const airRequestInterval = (programEndDate - currentDate) / 2;
return airRequestInterval > 60000 ? airRequestInterval : 30000;
};
useEffect(() => {
let interval;
if (program?.status === ONAIR) {
interval = setInterval(() => {
fetchQuery(
environment,
onAirProgramsQuery,
{ channelId: program?.channel?.id }, // 'Y2hhbm5lbDpldXJvc3BvcnQtMjAz'
{ force: true }
).then(fragmentData => {
setOnAirProgramsfragmentData(fragmentData);
});
}, onAirRequestInterval);
}
return () => clearInterval(interval);
}, [environment, onAirProgramsQuery, program]);
但是我在控制台中出现错误,似乎不起作用。
有人可以帮我吗?
谢谢