Я хочу слушать наблюдаемое, только когда происходит одно из этих трех событий:
- пользовательские клики
- пользователь перетаскивает
- одно значение передается через эту наблюдаемуюЯ слушаю
В настоящее время я написал это так:
this.pointsChange$
.pipe(
takeUntil(
merge(
this.eventService.pipe(flatMap(api => api.userClicked)),
this.eventService.pipe(flatMap(api => api.userDragged))
)
),
take(1)
).subscribe(data => {
// Do something with data
});
Работает нормально, однако выглядит для меня немного громоздко, особенно комбинация takeUntil
и take(1)
.Есть ли метод, который может объединить эти две вещи?