我需要一些有关计时器系统逻辑的帮助
我的案件摘要: 我在一家商店担任填充经理,员工必须在关闭时间后才填充架子。我们所有的货物都装在集装箱上。我得到了这些容器的列表,所有这些容器都有完成它们所需的时间(以分钟为单位)(将所有内容填充到货架上)。
那是我的兼职工作。我也是大学编程专业的学生。
我正在尝试开发一个应用程序(以本机反应),可以在其上跟踪这些容器的进度。
现在,我对如何显示需要完成容器的剩余时间有一些想法,但是我觉得它们在性能方面效率很低
想法1: 使用循环 我只是用一个创建一个(while)循环 第二次延迟,然后检查当前时间 (hh:mm),如果一分钟过去了 更改容器的剩余时间值。 但是,这带来了一个问题:while循环 这样是不好的做法(?)
想法2: 具有超时功能的自呼功能 我可以制作一个方法 分钟,然后多次使用此功能 次,每个进行中的容器一次。 我可以使用布尔值来中断它。 但这也不是一个好习惯
想法3: 系统时间触发 我不知道如何才能做到这一点, 我也找不到任何在线内容。 我的意思是被触发的功能 通过更改手机的系统时间。 这样每分钟通过一个功能 触发并更新剩余时间 所有的容器
我不知道这三个想法中哪一个最好。
如果您对如何解决此问题还有其他(更好)的想法,我也欢迎您提出建议。
答案 0 :(得分:0)
我最终决定使用“ react-native-timer”(可以找到here)
我每隔10秒调用一次方法
Timer.setInterval('updateActiveContainerTimes', this.updateActiveContainerTimes, 10000)
然后在updateActiveContainerTimes中,我像这样设置timeLeft变量:
container.timeLeft = container.time - this.getTimeDifference(container.startTime, new Date())
其中的getTimeDifference是比较两个日期对象的简单方法,如下所示:
getTimeDifference(d1: Date, d2: Date) {
let hourDifference = d2.getHours() - d1.getHours()
let minuteDifference = d2.getMinutes() - d1.getMinutes()
return (hourDifference * 60) + minuteDifference
}