如何在Nodejs中跟踪滚动时间段内的值?
即:可能每10秒返回"1"或"0"的事件,如果此事件在最后5分钟内每10秒返回一个"1",则发出true但如果在最后5分钟内有一个或多个"0"实例,则会发出错误的
我在谷歌上搜索了一些,但似乎一直指向setTimer函数,这不是我想要的。
有人能提供一些建议吗?谢谢你的帮助。
在极少数情况下,如果存在一个或多个0实例,我们可以在事件给出0:时发出false
var place = 0;
var intv = setInterval(() => {
if (place > 30){ // 30 * 10 seconds = 5 mins
console.log("true");
clearInterval(intv);
}
place++;
if (event() == '0'){
console.log("false");
clearInterval(intv);
}
}, 10000); //10 seconds
如果超过1次,例如问题出现7次或更多次,我们可以使用一个变量来跟踪事件结果:
var instancesOfZero = 0;
var place = 0;
var intv = setInterval(() => {
if (instancesOfZero == 7) { // 7 is the desired # of instances to emit false
console.log("false");
clearInterval(intv);
}
if (place > 30){
console.log("true");
clearInterval(intv);
}
place++;
if (event() == '0'){
instancesOfZero++;
}
}, 10000);