мы можем позвонить в наш сервис через равные промежутки времени, как это.
Observable
.interval(2*60*1000)
.timeInterval()
.flatMap(() => this.bookFlightService.GetFlights(abc, def, ghi)
.subscribe(data => {
console.log(data);
});
Обновление:
Если вы используете конвейерные операторы (rxjs5 и выше), просто передайте операторы по конвейеру вместо их цепочки:
интервал (2 * 60 * 1000)
.pipe (
flatMap (() => this.bookFlightService.GetFlights (abc, def, ghi)
)
.subscribe (data => console.log (data))
Попробуйте с таймером от RxJS:
import { Subscription, timer, pipe } from 'rjxs';
import { switchMap } from 'rxjs/operators';
subscription: Subscription;
statusText: string;
ngOnInit() {
this.subscription = timer(0, 10000).pipe(
switchMap(() => this.myservice.checkdata())
).subscribe(result => this.statustext = result);
}
интервал (10000) от RxJS не подходит, потому что он начнет излучать значение только через 10 секунд, а не сразу в первый раз.
Таймер (0, 10000) будет выдавать значение немедленно (0) и каждые 10 секунд (10000).