Size: a a a

Советский Angular

2019 December 04

N👩

Nikita 👩🏻‍💻💭 in Советский Angular
Вертихвост キバ
когда будем в музыкальной комнате играть?)
давай время выберем, приходи)
источник

N👩

Nikita 👩🏻‍💻💭 in Советский Angular
только я рок не буду играть
источник

Вキ

Вертихвост キバ in Советский Angular
а что ты играешь?
источник

N👩

Nikita 👩🏻‍💻💭 in Советский Angular
Вертихвост キバ
а что ты играешь?
на данный момент ничего)
но вообще можно джаз
источник

D

Dima in Советский Angular
Никиты ответ 🦄
источник

N👩

Nikita 👩🏻‍💻💭 in Советский Angular
Dima
Никиты ответ 🦄
da)
источник

D

Dima in Советский Angular
источник

DT

Dmitry Teplov in Советский Angular
Алексей Охрименко
SwitchMap далеко не всегда нужен. Особенно если нет Asynс запроса на сервер - в этих случаях можно воспользоваться withLatestFrom(…startsWith())

private filterBySearchTerm() {
       return withLatestFrom(
           this.debouncedSearchTerm$.pipe(
               startWith(defaultSearchTerm)
           )
       ).pipe(
           map([integrations, searchTerm] => {
               return filterBySearchTerm(integrations, searchTerm)
           })
       );
   }
   
   private filterByTags(): MonoTypeOperatorFunction<ReadonlyArray<IUIIntegration>> {
       return withLatestFrom(
           this.integrationsListFilterStateService.getNested('selectedTagIds').pipe(
               startWith(null)
           )
       ).pipe(
           map([integrations, tagIds] => {
               if (tagIds != null && tagIds.length > 0) {
                   filterByTags(integrations, tagIds);
               } else {
                   return integrations;
               }
           })
       );
   }
спасибо
но ведь c withLatestFrom новые значения из сорса фильтра не будут эмититься, только когда поменяется значение в основном потоке
источник

АО

Алексей Охрименко in Советский Angular
Dmitry Teplov
спасибо
но ведь c withLatestFrom новые значения из сорса фильтра не будут эмититься, только когда поменяется значение в основном потоке
Хм. Тогда для фильтра combineLatest
источник

DT

Dmitry Teplov in Советский Angular
Алексей Охрименко
Хм. Тогда для фильтра combineLatest
но ведь тогда это то же самое по логике, что и через свитчМэп, разве нет?

(там оба варианта нижних методах)
источник

АО

Алексей Охрименко in Советский Angular
Dmitry Teplov
но ведь тогда это то же самое по логике, что и через свитчМэп, разве нет?

(там оба варианта нижних методах)
SwitchMap отписывается от предыдущего потока (если он не был завершён). В ситуации с searchTerm в этом просто не имеет смысла
источник

DT

Dmitry Teplov in Советский Angular
Алексей Охрименко
SwitchMap отписывается от предыдущего потока (если он не был завершён). В ситуации с searchTerm в этом просто не имеет смысла
но в таком варианте с combineLatest тоже будет отписываться
источник

DT

Dmitry Teplov in Советский Angular
ибо мы каждый раз новый combineLatest выплёвываем из функции
источник

DT

Dmitry Teplov in Советский Angular
Алексей Охрименко
SwitchMap отписывается от предыдущего потока (если он не был завершён). В ситуации с searchTerm в этом просто не имеет смысла
можно, конечно, вот так...
но оператор депрекейтед
источник

KA

Kulagin Alex in Советский Angular
Dmitry Teplov
можно, конечно, вот так...
но оператор депрекейтед
return source => combineLatest(source, this.debouncedSearchTerm$).pipe(map(...))
источник

KA

Kulagin Alex in Советский Angular
кажется как-то так оно делалось
источник

DT

Dmitry Teplov in Советский Angular
Kulagin Alex
return source => combineLatest(source, this.debouncedSearchTerm$).pipe(map(...))
да, этот вариант уже был
будет же тоже каждый раз заново подписываться
источник

АО

Алексей Охрименко in Советский Angular
Dmitry Teplov
но в таком варианте с combineLatest тоже будет отписываться
combineLatest не отписывается ни от чего
источник

АО

Алексей Охрименко in Советский Angular
Он генерирует пары из 2х потоков по любому собитих из любого потока
источник

DT

Dmitry Teplov in Советский Angular
Алексей Охрименко
combineLatest не отписывается ни от чего
но мы каждый раз получаем из функции новый поток с combineLatest
source$ => combineLatest([source$, new$]).pipe(...))
источник