我正在开发一个员工登录系统,计算员工登录的总时间,包括休息时间等,所以我有两个组件 1. 一直计算时间,直到员工登录 2. 计算总时间休息。所以在这种情况下,我不希望登录时间在打断时停止,而是我希望中断和登录时间应该一起运行
const [isLoggedIn, setLoggedIn] = useState(true)
const [isBreakPunched, setBreakPunch] = useState(true)
const [breakTime, setBreakTime] = useState(0);
const [loginTime, setLoginTime] = useState(0);
useEffect(() => {
if (isLoggedIn) {
const interval = setInterval(() => {
setLoginTime(onlineTime + 1);
}, 1000);
return () => clearInterval(interval);
}
if (isBreakPunched){
const interval = setInterval(() =>{
setBreakTime(auxTime +1);
},1000);
return ()=> clearInterval(interval);
}
});
当它运行时,loginTime
只是在运行,因为第一个条件确实是登录时间所以要运行 breakTime
我必须停止 loginTime
。此代码将两者都视为 if..else.. 循环
我的问题是,当任何人的条件为 true
时,我想同时运行它们,它们应该相互独立
最佳答案
setInterval( () => {
if (isLoggedIn) {
setLoginTime(onlineTime + 1);
}
if (isBreakPunched) {
setBreakTime(auxTime +1);
}
}, 1000);
此间隔检查是否有人登录以设置登录时间,如果他们在休息则设置休息时间。顺便说一句,您希望根据彼此的情况设置登录时间和中断时间,同时彼此“独立”,这是没有意义的。
关于javascript - 如何在javascript中同时运行到if语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67452330/