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

call an interval() immediately without distoring its intervals

我有一个 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);


      });

  }
}

是的,您可以使用 startWith 运算符,它会将第一个值发送到您的 observable。

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

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

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