конкат


Это было весело. Поскольку я использую interval для настройки Observable, я получаю холодный. Поскольку мой мраморный компонент подписывается на переданный ему Observable, он создает новый интервал для каждой подписки. Каждый из моих шариков стрелял волей-неволей, а не правильно отображал пример, который я имел в виду. Чтобы справиться с этим, я воспользовался оператором под названием поделиться, который в этом случае разделял исходный интервал с каждой новой подпиской вместо создания новой.
Это решило мою проблему, но выявило другую. Весь смысл concat в том, что он не подписывается на последующий Observable до тех пор, пока предыдущий не завершится. В моих существующих анимациях не было никакой визуализации этого, поэтому теперь я добавил класс, который уменьшает непрозрачность мрамора, когда его Observable завершен. Мне нравится эффект.
конкат
Создает выходной Observable, который последовательно выдает все значения из данного Observable, а затем переходит к следующему.
Примечание. Существует две функции concat. Одна из них, другая — устаревшая версия оператора, которую я не буду рассматривать.

Пример использования
concat будет использоваться, когда вы хотите убедиться, что один поток завершен, прежде чем вы начнете слушать следующий. Примером может быть список воспроизведения мультимедиа. В плейлисте 3 аудиоклипа, каждый разной длины. Это может выглядеть примерно так:
Что стоит отметить в этом примере: в отличие от вышеприведенного StackBlitz, каждый из этих наблюдаемых аудиоклипов намеренно оставлен холодным. Каждый раз, когда наблюдатель подписывается на Observable, созданный concat, список воспроизведения начинается заново. Если вместо этого вы хотите, чтобы новые подписчики подхватывались из текущего места воспроизведения, вы могли бы реализовать поделиться для каждого клипа.
Спасибо за чтение. Ждите Часть 5 и обязательно ознакомьтесь с предыдущими статьями.