【问题标题】:How to loop a section of code in nodejs for a set amount of time?如何在nodejs中循环一段代码一段时间?
【发布时间】:2018-11-30 17:18:20
【问题描述】:

我正在尝试制作一个游戏,它需要保持循环 X 秒的时间,最好是我可以改变的东西。

var startTime = Date.now();
while ((Date.now() - startTime) < guessTheWordDuration) {
  //game code
  
 }

我已经尝试过了,但它似乎不起作用,将其设置为一个数字似乎会无限循环它。

感谢任何帮助!

这是在 nodejs v8 中

【问题讨论】:

  • 你通常不想这样做,因为它会阻塞线程。通常有更好的方法,但很难推荐,因为我们不知道guessTheWordDuration 做了什么。你能补充一些细节吗?
  • 这个游戏应该做什么?客户端做什么以及服务器如何反应?
  • node.js 是事件驱动的。你回应事件。你不要这样循环。因此,您要么响应输入事件,要么设置计时器并响应计时器事件。

标签: javascript node.js loops time


【解决方案1】:

您需要多久执行一次 while 循环?我可能会做这样的事情。

function gameLoop () {
  // do stuff
  setTimeout(() => {
    gameLoop();
  }, 100); // makes the thread non blocking for 100 ms
}

gameLoop();

然后你只需要为你的超时创建一个变量,如果你想停止循环就取消它。

【讨论】:

    猜你喜欢
    • 2011-06-20
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2021-03-12
    • 2015-08-15
    • 1970-01-01
    相关资源
    最近更新 更多