немедленно вызвать интервал (), не искажая его интервалы - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть 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 голосов
/ 08 февраля 2019

Вы можете использовать Observable.timer (0, 600_000) .subscribe и т. Д. Это начнется сразу же и будет выдавать значение каждые десять минут, как вы хотели.

0 голосов
/ 07 февраля 2019

Да, вы можете использовать оператор startWith , и он выдаст первое значение вашей наблюдаемой.

Так что, если вы хотите, чтобы он начинался сразу, присвойте ему значение0, как startWith(0).В вашем примере это выглядит так

Observable.interval(600000)
      .subscribe((data) => {
         this.result.next(true);
}).startWith(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...