Search
Write a publication
Pull to refresh
0
0
Send message

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, директивы подменяют детали реализации абстрации переопределяя токен сервиса уровнем выше

Information

Rating
Does not participate
Registered
Activity