2
我只是發現了其他的一天,Node.js的有一個叫的Node.js process.hrtime()基準錯誤
此計時器理應有納秒級分辨率的高分辨率定時器功能,這太棒了因爲現在我可以用比Date模塊更高的準確性來計時。
反正我正在使用這個新的計時器來嘗試使一個Timer對象能夠處理傳遞給它的不同任務。不幸的是,我得到了一些奇怪的負面結果,這讓我質疑這個假設的「高分辨率」定時器的準確性和可靠性。
讓我告訴你我的代碼:所以有時候
hrTimer.js
//IMPORTS
var async = require('async');
HrTimer = {
time: function(task) {
var t1 = t2 = '';
async.series([
function(callback){
t1 = process.hrtime();
callback();
},
task,
function(callback){
t2 = process.hrtime();
callback();
}
]);
var t1 = t1[0].toString() + '.' + t1[1].toString();
var t2 = t2[0].toString() + '.' + t2[1].toString();
var dif = parseFloat(t2)-parseFloat(t1);
if(dif < 0){
debugger;
console.log(t1);
console.log(t2);
}
return dif;
}
};
module.exports = HrTimer;
將進入代碼塊中DIF < 0。這是不應該提供的異步模塊正常工作,並且定時器工作正常。任何幫助?
我明白了!這可以簡化並更正我的代碼!謝謝。 – krb686
@ krb686沒問題! – loganfsmyth