UNPKG

fastflux

Version:

Message driven reactive state management

77 lines (59 loc) 1.78 kB
'use strict'; exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var _baseJs = require('./base.js'); var _baseJs2 = _interopRequireDefault(_baseJs); /** * @example * let emitter = new Observable; * let log = (v) => console.log("Received:", v); * * let subscription = new Subscription(emitter, log); * assert(!subscription.isActive()); * * subscription.activate(); * assert(subscription.isActive()); * * subscription.terminate(); * assert(!subscription.isActive()); */ var Subscription = (function () { /** * @param {Observable} source * @param {function} subscriber */ function Subscription(source, subscriber) { _classCallCheck(this, Subscription); this._source = source; this._subscriber = subscriber; } /** * Equivalent to `source.hasSubscribed(subscriber)` * * See {@link Observable#hasSubscribed} * @returns {boolean} */ Subscription.prototype.isActive = function isActive() { return this._source.hasSubscribed(this._subscriber); }; /** * Equivalent to `source.subscribe(subscriber)` * * See {@link Observable#subscribe} */ Subscription.prototype.activate = function activate() { this._source.subscribe(this._subscriber); }; /** * Equivalent to `source.unsubscribe(subscriber)` * * See {@link Observable#unsubscribe} */ Subscription.prototype.terminate = function terminate() { this._source.unsubscribe(this._subscriber); }; return Subscription; })(); exports['default'] = Subscription; module.exports = exports['default'];