Node.JS精确定时器

Node.JS Accurate Timer

本文关键字:定时器 JS Node      更新时间:2023-09-26

如何创建Node.JS精确计时器?它应该看起来像一个厨房计时器或秒表。

我需要尽可能精确。这款应用会引发某种"点击大战"。我需要存储每个(并发)用户的点击,记录秒数和毫秒数(游戏邦注:以配合游戏)。

我该怎么做?有一些代码示例吗?

你应该看看microtime模块,它给你精确到微秒的时间。您甚至可以测量CPU滴答时间与它!

根据代码,您可以这样做(将时间存储在对象中,然后使用user id访问它们,优点是不会重复相同的用户,并且如果用户名已知,则可以更快地访问一个):

var microtime = require('microtime');
  , clicks = {};
click(function(user){ // An event listener for received clicks
  clicks[user] = microtime.now();
});

(将所有元素都放入数组中,优点是可以对其进行排序,并且很容易对所有元素进行迭代)
var microtime = require('microtime');
  , clicks = [];
click(function(user){ // An event listener for received clicks
  clicks.push({
    user : user,
    time : microtime.now()
  });
});

从节点v0.8.0开始,您可以使用process.hrtime(),它将返回一个包含相对秒数和纳秒数的数组。