RxJs повторяют цепочку на мероприятии - PullRequest
0 голосов
/ 15 октября 2018

У меня наблюдаются некоторые холодные RxJs, которые я хочу обновить и извлечь данные с сервера, когда какое-либо событие щелкнет $.

let files$ = param$.pipe(
  param => http.getFolder(param),
  folder => http.getFolderFiles(folder),
  REPEAT_ON(click$)
  takeUntil(this.destroy$)
)

Какой оператор следует использовать вместо мнимого оператора REPEAT_ON?

Я могу добиться этого, используя этот код

let files$ = combineLatest(param$, click$.pipe(startsWith(undefined))).pipe(
  param => http.getFolder(param[0]),
  folder => http.getFolderFiles(folder),
  takeUntil(this.destroy$)
)

Но он плохо пахнет, и я думаю, что параметрlateLatest не подходит для моего варианта использования.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Ничего плохого в combineLatest, но я думаю, вы пытаетесь найти оператор repeatWhen.

const array$ = Observable.from(["arr1", "arr2", "arr3", "arr4"]).do(console.log);
const click$ = Observable.fromEvent(document, 'click');

array$
    .repeatWhen(() => click$)
    .subscribe();

Вот пример: https://codepen.io/anon/pen/EdbPoV

0 голосов
/ 15 октября 2018

Почему не это?

click$.pipe(
  switchMap(() => files$)
).subscribe(res => { /* result of the chain ran again */ })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...