Я хочу установить интервал в http-запросе с использованием rxjs. Мне нужно отправить данные на сервер через n секунд после завершения запроса.Как запросить асинхронный интервал, используя rxjs в Angular 2
Observable.interval(10000)
.?(() => {
//request for server. return Observable
return this.getData();
})
.subscribe(() => {
console.log("Request done. After 10 second will be next request");
});
UPDATE на основе .expand()
предложил Марк
ngOnInit() {
this.getData()
.expand(() => Rx.Observable.timer(10 * 1000)
.concatMap(() => this.getData())
)
.subscribe(data => {
console.log('received new data', data);
});
}
private getData() {
return Observable.timer(5000)
.do(() => console.log("timer"));
}
Вопрос - это обновление. Правильно ли я понимаю? – Illorian
Я не знал о '.expand()' operator .... Это выглядит интересно :), мне всегда было плохо, используя те виды автоматической обратной связи (вот почему я начал свой ответ так: «Это сложно ") – olivarra1
@ olivarra1, но он работает странно – Illorian