UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

31 lines (30 loc) 634 B
export class Subscription { constructor(subscribe, emit) { this.subscribe = subscribe; this.emit = emit; this._unsubscribe = null; } isActivated() { return this._unsubscribe !== null; } activate() { if (this._unsubscribe === null) { this._unsubscribe = this.subscribe(this.emit); } return this; } deactivate() { if (this._unsubscribe !== null) { this._unsubscribe(); this._unsubscribe = null; } return this; } toggle(activate = !this.isActivated()) { if (activate) { return this.activate(); } else { return this.deactivate(); } } }