Опрос нескольких ресурсов с использованием RxJS в угловых 5 - PullRequest
0 голосов
/ 06 июля 2018

У меня есть требование опроса нескольких ресурсов с течением времени. Каждый раз, когда я начинаю опрос, он должен добавлять его в какой-то опрос pool . если какой-либо запрос соответствует каким-либо критериям, я должен вынуть его из своего пула. Как мы можем добиться этого, используя крутые операторы rxjs?

1 Ответ

0 голосов
/ 06 июля 2018

Я так понимаю ваш вопрос, что вы хотите опросить список ресурсов.

интервал (таймер) для таймерного опроса и takeUntil () / takeWhile () для завершения подписки может быть вашей вещью тогда.

let pollSubscriptions: Subscription = new Subscription()

let requestUrl = 'http://bestResourceever.com'
let polltime = 5000; // Timer for polling

this.addNewPoll(requestUrl, polltime);


addNewPoll(url, timer){
    this.pollSubscriptions.add(
        interval(timer).pipe(
            switchMap(()=> this.http.get(url) ),
            tap(data => this.writeDateSomewhere(data) ),
            takeUntil( data => this.shouldPollingBeStopped(data) )
        ).subscribe()
    )
}

Я добавил «pollSubscription.add ()» на тот случай, если вы хотите отписать сразу все подписки на опрос (this.pollSubscription.unsubscribe ())

С уважением

...