RxJS. Подписка в подписке

Когда к нам в компанию приходят новые ребята, то обязательно делают подписку в подписке. Чтобы её избежать в простейшем случае надо использовать операторы mergeMap или switchMap.

import { of } from 'rxjs';
import { map, mergeMap } from 'rxjs/operators';

// грязно (subscribe hell)
of('Hello').subscribe(h => {
  of(h + ' world').subscribe(hw => {
    of(hw + '! (1)').subscribe(console.log)
  });
});

// лаконично. mergeMap или switchMap
of('Hello').pipe(
  mergeMap(h => of(h + ' world')),
  mergeMap(hw => of(hw + '! (2)')),
).subscribe(console.log);

Stackblitz

Похожие записи

Flexbox или CSS Grid

  • CSS Grid отлично подходит для макетов с нестандартным или асимметричным дизайном.
  • Flexbox отлично подходит для выравнивания содержимого внутри элементов.
  • Нет причин применять только CSS Grid или только Flexbox. Изучайте их и используйте совместно.

RxJs Subjects

Выдержки из доклада Андрея Алексеева (Tinkoff) про RxJs (Subject, Behaviour Subject, Replay Subject, Async Subject). Применение в Angular.

HTML атрибуты и DOM свойства

  • Значение HTML атрибута указывает начальное значение;
  • Значение DOM свойства является текущим значением;
  • Атрибуты инициализируют DOM свойства.