首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试setInterval

测试setInterval
EN

Stack Overflow用户
提问于 2019-05-16 15:58:39
回答 1查看 196关注 0票数 0

我在测试使用setInterval的代码时遇到了问题。

我的组件检查当前时间是否在给定时间之后的函数。

我期望的是isAfter标志在开始时应该是假的,6秒后应该是真的(在2,3,4秒应该是假的)

现在它仍然是假的。

组件代码

代码语言:javascript
复制
  isAfter: boolean;

  private interval;

  ngOnInit(): void {
    const now = new Date();
    const time = now.setSeconds(now.getSeconds() + 5);

    const future = new Date(time);

    this.checkTime(future);
  }

  private checkTime(time: any): void {
    this.interval = setInterval(() => {
      const now = new Date();

      if (now === time) {
        console.log('stop');
        this.isAfter = true;
        clearInterval(this.interval);

      } else {
        console.log('next');
        this.isAfter = false;
      }
    }, 1000);
  }
}

规范代码

代码语言:javascript
复制
import { TestBed, async, ComponentFixture, fakeAsync, tick, discardPeriodicTasks } from '@angular/core/testing';
import { AppComponent } from './app.component';

describe('AppComponent', () => {

  let component: AppComponent;
  let fixture: ComponentFixture<AppComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
    }).compileComponents();


    fixture = TestBed.createComponent(AppComponent);
    component = fixture.componentInstance;
  }));


  it ('should check time', fakeAsync(() => {

    fixture.detectChanges();
    console.log('isAfter 1', component.isAfter);

    tick(3000);
    fixture.detectChanges();
    console.log('isAfter 3', component.isAfter);

    tick(6000);
    fixture.detectChanges();
    console.log('isAfter 6', component.isAfter);

    discardPeriodicTasks();

  }));

});
EN

回答 1

Stack Overflow用户

发布于 2019-05-16 16:07:53

代码语言:javascript
复制
if (now === time)

这一行通过引用进行比较,这里有两个不同的date对象。您应该将其更改为:

代码语言:javascript
复制
if (now.getTime() === time.getTime())

而是比较两个原始数。

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

https://stackoverflow.com/questions/56163645

复制
相关文章

相似问题

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