立即调用interval()而不扭曲其间隔

时间:2019-02-07 11:28:30

标签: angular angular5

我有一个Observable.interval(600000),它每10分钟运行一次。组件已订阅并且运行良好。但是我想要的是,是否可以在应用加载时让它自动运行而不影响其600000毫秒的间隔时间?

注意:代码被大大缩短以说明问题。

@Injectable()
export class CalculateService {
  result: Subject<any> = new Subject<any>();

  constructor(

  ) {


    Observable.interval(600000)
      .subscribe((data) => {
         this.result.next(true);


      });

  }
}

2 个答案:

答案 0 :(得分:1)

是的,您可以使用startWith运算符,它将向您的观察对象发出第一个值。

因此,如果您希望它立即开始,请将其值设为0,例如startWith(0)。 在您的示例中,它看起来像这样

Observable.interval(600000)
      .subscribe((data) => {
         this.result.next(true);
}).startWith(0);

答案 1 :(得分:1)

您可以使用Observable.timer(0,600_000).subscribe等。 这将立即开始,并根据需要每十分钟发出一个值。