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.