Що робить tap()?
tap() в RxJS - це оператор, який дозволяє виконувати побічні дії, не змінюючи сам потік.
Простий приклад:
ts
import { of } from 'rxjs';
import { tap, map } from 'rxjs/operators';
of(1, 2, 3)
.pipe(
tap(val => console.log('Отримано:', val)),
map(val => val * 10)
)
.subscribe(result => console.log('Результат:', result));Виведе:
javascript
Отримано: 1
Результат: 10
Отримано: 2
Результат: 20
Отримано: 3
Результат: 30Навіщо потрібен tap():
- Для логів і відладки
- Для виклику методів (наприклад, показати/сховати індикатор завантаження)
- Для збереження в localStorage, відправки аналітики тощо
- Не змінює значення потоку, просто спостерігає
Де використовують:
ts
this.http.get('/api/data')
.pipe(
tap(() => this.isLoading = true),
tap(data => console.log('Дані прийшли:', data)),
tap(() => this.isLoading = false)
)
.subscribe();Висновок:
tap() - це як дзеркало збоку потоку:
бачиш, що відбувається, можеш щось зробити,
але не втручаєшся в самі дані.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.