Angular 6 - rxjs подписаться на последние события в querylist изменения?

Я пытаюсь решить вариант использования приложения, которое разрабатываю с помощью Угловой 6.x и Rxjs 6.x.

Это может быть довольно просто, но я не могу решить .... Чтобы подвести итог, у меня есть некоторые компоненты, на которые я подписываюсь в цикле AfterViewInit, и тогда мне нужно будет выполнять только последний выброс каждый раз, когда наблюдаемое отправляется или отправляется.

 @ViewChildren(XComponent)
  xChilds: QueryList<XComponent>;

a ==> ngAfterViewInit() {
        this.xChilds.changes.pipe(
                ................ //I SHOULD PUT SOMETHING TO GET THE LAST VALUE
        ).subscribe(xChilds => {
          debugger;
          ------------------

Схема будет такой

a)      >--A--A--A--A|
RESULT) >-----------A|

Итак, мой подход в первый раз заключался в использовании таких операторов, как ПРИНЯТЬ (1), ПЕРВЫЙ() или ПОСЛЕДНИЙ(), и он работает.

Дело в том, что последнее, когда я получаю больше событий, они больше не запускаются и не запускаются ...

И диаграмма будет такой

a)      >--A--A--A--A .......NOTHING HAPPENS.......... --A--A--A--A|
RESULT) >-----------A............................ ------------- NOTHING

Похоже на то, что операторы сначала и т. д. Отказываются от подписки после первой последовательности

Я уверен, что должен быть оператор для достижения что я хочу.

a)      >--A--A--A--A....NOTHING HAPPENS....--A--A--A--A|
RESULT) >-----------A.......................-----------A|

Я ценю любую помощь. Заранее спасибо!!!!

Вы пробовали пользоваться оператором debounceTime?

Mateusz Witkowski 31.10.2018 12:38

Вы пробовали withLatestForm с оператором rxjs?

Sarthak Aggarwal 31.10.2018 12:48

В этом нет никакого смысла. Как Rx узнает, какой у вас | на диаграмме?

Roberto Zvjerković 31.10.2018 12:56

На вашей диаграмме есть проблема, поэтому вы никогда не получите ту диаграмму, которую ожидаете. Одна цепочка Observable может генерировать только одно уведомление complete, но на вашей диаграмме вы ожидаете его несколько раз. Исходный Observable this.xChilds.changes не будет генерировать несколько уведомлений complete.

martin 31.10.2018 12:59

@ritaj, почему в этом нет никакого смысла ???? Я бы отредактировал, удалив его

ackuser 31.10.2018 14:05

Наблюдаемые либо излучают, либо завершают. Третьего варианта «|» не существует. Вы можете объяснить "|" словами?

Roberto Zvjerković 31.10.2018 14:08

Извини, дружище, мне наплевать на символы ... Я имею в виду, я думаю, что то, что я объясняю, вполне понятно, если ты не можешь мне помочь, это нормально, в любом случае я ценю ... Но я не хочу заострять внимание на этом вопросе ' | '

ackuser 31.10.2018 14:11

Это непонятно, и без лучшего объяснения никто не сможет вам помочь, потому что невозможно понять, чего вы пытаетесь достичь.

Roberto Zvjerković 31.10.2018 14:12

@MateuszWitkowski Спасибо, я добился этого с этим оператором, хотя я не понимаю, почему что-то вроде отличногоUntilChanged, первое или последнее! Спасибо!

ackuser 31.10.2018 14:17
0
9
382
0

Другие вопросы по теме