Size: a a a

Angular - русскоговорящее сообщество

2021 June 17

OP

Oleg P in Angular - русскоговорящее сообщество
иметь возможность отписаться от канала
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
при получении значения делать pipe(filter) с тем что уже получены данным компонентом
или попробуй вот так

в сервисе
obs$: = _replaySubjec.asObservable()

в компоненте
private _stop$: Subject<boolean> = new Subject<boolean>();

obs$.pipe(takeUntil(this._stop$))
.subscribe(value => {
// 1сохрани значение

// 2 отпишись
 this._stop$.next(true);
   this._stop$.complete();
}
источник

OP

Oleg P in Angular - русскоговорящее сообщество
это все в сервисе?
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
только это в сервисе
obs$: = _replaySubjec.asObservable()
источник

OP

Oleg P in Angular - русскоговорящее сообщество
хм - вроде должно сработать. Сейчас проверим
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
расскажешь, сам что-то не сталкивался
источник

OP

Oleg P in Angular - русскоговорящее сообщество
не сработало - что не реагирует на стоп
источник

MA

Mr. Algernon in Angular - русскоговорящее сообщество
я все понять не могу для чего нужен infiniteScrollThrottle в ngx-infinite-scroll?
источник
2021 June 18

А

Александр (Alex)... in Angular - русскоговорящее сообщество
😔
источник

OP

Oleg P in Angular - русскоговорящее сообщество
это дает true при подписке на стоп:

   this.unsubscribe.next();
   this.unsubscribe.complete();

Второй раз - ничего не дает. Т-е вроде бы сабджект отписался
источник

OP

Oleg P in Angular - русскоговорящее сообщество
может быть два takeUNtil в одном pipe?
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
так и надо первый раз ты получаешь а следующие нет а тебе как надо
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
да последним
источник

OP

Oleg P in Angular - русскоговорящее сообщество
мне так и недо. Если stop завершился то не пропускать данные:

this.mapLibrary.reonMap.eventService
     .subscribe(EventsChannels.EDIT_LAYER_MAP)
     .pipe(
       takeUntil(this.mapLibrary.reonMap.eventService._stop$),
       takeUntil(this.unsubscribe)
     )
источник

OP

Oleg P in Angular - русскоговорящее сообщество
но первый takeUntil пропускает
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
почему _stop$ в каком-то сервисе а не просто в компоненте?
источник

OP

Oleg P in Angular - русскоговорящее сообщество
потому что компонент пересоздается каждый раз
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
это всё сложно) а много там значений вообще?
источник

А

Александр (Alex)... in Angular - русскоговорящее сообщество
можно сделать cash-массив в том же сервисе, где твой ReplaySubject
в сервисе
obs$: = _replaySubjec.asObservable().pipe(filter( по кэшу)) если не отправлялось то отправить иначе нет
источник

OP

Oleg P in Angular - русскоговорящее сообщество
спасибо - буду думать - потом поделюсь решением
источник