Я пытаюсь выполнить http-опрос Rxjs (запросить, бездействовать определенное время после получения результата, а затем запросить снова), но все же получил несколько не очень проясненных вопросов, может кто-нибудь помочь объяснить?
Q1: я выдаю значение для загрузки $ из конвейера load $, это хороший способ реализовать стратегию опроса (она работает в текущем режиме, просто не знаю, является ли это лучшей практикой)
Q2: Я понимаю, что когда флажок установлен, pauser $ добавит подписчика для загрузки $, поэтому цикл загрузки $ сработал, но когда флажок снят, pauser просто переключается на пустой поток, это нормально, но почему загрузка $ остановлена?никто не отписался это правильно?(хотя да, в настоящее время это работает как ожидалось, но почему?)
const load$ = new BehaviorSubject('').pipe(
concatMap(_ => concat(
from(makePromise()).pipe(tap(v => dispatchEvent(v)), tap(v => log("idle "))),
of('').pipe(delay(2000)),
// interval(1000).pipe(take(3), tap(v => log("idle " + v))),
of('').pipe(tap(_ => load$.next('')), skip(1))
))
);
pauser$ = fromEvent(document.querySelector("#tick"), "click")
.pipe(
pluck("target", "checked"),
switchMap(checked => checked ? load$ : empty())
)
.subscribe(_ => _!="" && console.log(_));