#javascript #angular #rxjs
Вопрос:
У меня есть функция JS в моем приложении angular, которая использует rxjs.
executionCheck(): void {
this.checkStatus = timer(5000, 25000)
.pipe(
switchMap(() => this.ngService.getData())
).subscribe(data => ...);
}
Я хотел бы динамически установить Timer
задержку запуска.
это означает запуск синхронной функции, которая возвращает значение true или false. если true, установите таймер на 5000, в противном случае 0.
Ответ №1:
Вы могли бы сделать что-то вроде этого:
executionCheck(): void {
this.checkStatus = timer(getTimerDelay(someValue), 25000)
.pipe(
switchMap(() => this.ngService.getData())
).subscribe(data => ...);
}
getTimerDelay(someValue): number {
//your logic to return either 5000 or 0
// for example:
if(someValue /*some logical condition*/){
return 5000;
} else {
return 0;
}
}