User
const Name = new BehaviorSubject( 'Jin' )
const Count = Name.pipe( map( Name => Name.length ), distinctUntilChanged(), debounceTime(0), share(), )
const Short = Count.pipe( map( Count => Count < 4 ) distinctUntilChanged(), debounceTime(0), share(), )
Что и зачем делает этот код на RxJS не сможет сходу сказать даже опытный стример. А это ведь самый простой пример, далёкий от реальной жести.
Расшифровка rxjs кода:
Создаем subject с дефолтным состоянием Jin;
Создаем Observable и кладем в константу Count;
В операторе map возвращаем длину строки Jin
Добавляем distinctUntilChanged для предотвращения дублирования если в потоке будет постоянно одно и тоже значение;
Вызываем задержку в 0 секунд непонятно зачем, и делаем multicasting для перевода Observable из холодного состояние в горячее;
Создаем Observable и кладем в константу Short;
В операторе map возвращаем boolean из выражения Count < 4;
Как я понял из кода на StackBlitz, директивы подменяют детали реализации абстрации переопределяя токен сервиса уровнем выше
const Name = new BehaviorSubject( 'Jin' )
const Count = Name.pipe( map( Name => Name.length ), distinctUntilChanged(), debounceTime(0), share(), )
const Short = Count.pipe( map( Count => Count < 4 ) distinctUntilChanged(), debounceTime(0), share(), )
Что и зачем делает этот код на RxJS не сможет сходу сказать даже опытный стример. А это ведь самый простой пример, далёкий от реальной жести.
Расшифровка rxjs кода:
Создаем subject с дефолтным состоянием Jin;
Создаем Observable и кладем в константу Count;
В операторе map возвращаем длину строки Jin
Добавляем distinctUntilChanged для предотвращения дублирования если в потоке будет постоянно одно и тоже значение;
Вызываем задержку в 0 секунд непонятно зачем, и делаем multicasting для перевода Observable из холодного состояние в горячее;
Создаем Observable и кладем в константу Short;
В операторе map возвращаем boolean из выражения Count < 4;
Добавляем distinctUntilChanged для предотвращения дублирования если в потоке будет постоянно одно и тоже значение;
Вызываем задержку в 0 секунд непонятно зачем, и делаем multicasting для перевода Observable из холодного состояние в горячее;
Как я понял из кода на StackBlitz, директивы подменяют детали реализации абстрации переопределяя токен сервиса уровнем выше