如何在不打扰其余代码的情况下在本地操作中设置分钟间隔计时器

时间:2019-05-23 06:44:25

标签: react-native timer

我需要一些有关计时器系统逻辑的帮助

我的案件摘要: 我在一家商店担任填充经理,员工必须在关闭时间后才填充架子。我们所有的货物都装在集装箱上。我得到了这些容器的列表,所有这些容器都有完成它们所需的时间(以分钟为单位)(将所有内容填充到货架上)。

那是我的兼职工作。我也是大学编程专业的学生。

我正在尝试开发一个应用程序(以本机反应),可以在其上跟踪这些容器的进度。

现在,我对如何显示需要完成容器的剩余时间有一些想法,但是我觉得它们在性能方面效率很低

想法1: 使用循环     我只是用一个创建一个(while)循环     第二次延迟,然后检查当前时间     (hh:mm),如果一分钟过去了     更改容器的剩余时间值。     但是,这带来了一个问题:while循环     这样是不好的做法(?)

想法2: 具有超时功能的自呼功能     我可以制作一个方法     分钟,然后多次使用此功能     次,每个进行中的容器一次。     我可以使用布尔值来中断它。     但这也不是一个好习惯

想法3: 系统时间触发     我不知道如何才能做到这一点,     我也找不到任何在线内容。     我的意思是被触发的功能     通过更改手机的系统时间。     这样每分钟通过一个功能     触发并更新剩余时间     所有的容器

我不知道这三个想法中哪一个最好。

如果您对如何解决此问题还有其他(更好)的想法,我也欢迎您提出建议。

1 个答案:

答案 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
}