Using both take(1) & takeUntil()

users$.pipe(take(1)).subscribe(...);

It's not guaranteed to cancel the subscription with take(1). If no value is emitted before the component is destroyed, this subscription will leak. We should use takeUntil(this.destroySub) to cancel the subscription when the component is destroyed.

users$.pipe(take(1),takeUntil(this.destroySub)).subscribe(...);