首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript/Typescript --是否可以度量变量的值设置了多长时间?

JavaScript/Typescript --是否可以度量变量的值设置了多长时间?
EN

Stack Overflow用户
提问于 2017-11-20 07:25:13
回答 1查看 155关注 0票数 0

我正在使用类型记录与Javascript库来制作一个交通模拟器。现在,我想知道红绿灯亮了多久了。在我的代码中,如果控制灯光变量颜色的某个布尔值为真,交通灯将改为绿色。我在想,如果我能够测量这个布尔变量被设置为true的时间。这样我就可以返回红绿灯的持续时间。我的代码太长了,无法将它们全部张贴在上面。但是有一些与设置交通灯相关的代码:

  1. 如果我想把交通灯设置为绿色,这个函数将被调用: setDirAtInter(dir: TLDir,loc: number){ //北南if(dir == 0){ this.intersections_arrloc.NS = true;}//东西如果(dir == 1){ this.intersections_arrloc.EW = true;} intersection_arr是一个包含intersection类实例的数组。
  2. 然后设置了布尔变量,而设置交通灯颜色时,intersection类下面的代码将受到影响: 若(this.NS == true){ this.right = "rgba(255,0,0,0.4)";this.left = "rgba(255,0,0,0.4)";this.top =“rgba(0,250,0,0.4)”;this.bottom =“rgba(0,250,0,0.4)”;
  3. 然后,intersection类中下面的代码将受到影响,以绘制交通灯: this.ctx.save();if(this.top == "rgba(0,255,0,0.4)"){ //green var shadow_color = 'rgba(0,255,0,1)';}{ var shadow_color =‘rgba(255,0,1)’;}//sole.log();this.ctx.fillStyle = shadow_color;this.ctx.shadowColor = shadow_color this.ctx.shadowOffsetY = -2;this.ctx.shadowBlur = 2;/** *右交通信号灯在顶部*/ this.ctx.fillRect(this.x+4,本-2,6,6);this.ctx.fill();this.ctx.restore();this.ctx.shadowOffsetX =未定义;this.ctx.shadowBlur =未定义; ctx就是CanvasRenderingContext2D。我能测量绿灯亮了多长时间吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-20 07:46:45

我想,这样做是没有办法的。使用一个setInterval,并一直检查变量的值,直到它改变为止。

代码语言:javascript
复制
let value = true;
let time = 0;
let previousValue = value;
const resolution = 1000; // 1 second
const handle = setInterval(() => {
  previousValue === value ? time += resolution : clearInterval(handle);
}, resolution);

time的值以毫秒为单位。这大约是它第一次修改时的持续时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47386887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档