I need to create a subscription to an Observable
that is immediately disposed of when it is first called.
Is there something like:
observable.subscribeOnce(func);
My use case, I am creating a subscription in an express route handler and the subscription is being called multiple times per request.
Not 100% certain about what you need, but if you only want to observe the first value, then use either first()
or take(1)
:
observable.first().subscribe(func);
note: .take(1)
and .first()
both unsubscribe automatically when their condition is met
From comment by Coderer.
import { first } from 'rxjs/operators'
observable
.pipe(first())
.subscribe(func);