Subscription.js

  1. import { Observer } from './Observer';
  2. import { noop } from './utilities';
  3. /**
  4. * @param {Function} callback
  5. * @param {{next: Function, error: Function, complete: Function}} observer
  6. */
  7. export class Subscription {
  8. constructor (callback = noop, observer = {}) {
  9. this.observer = new Observer(observer);
  10. this.observer.use(callback);
  11. }
  12. static createSimple (observer) {
  13. return new Subscription(noop, observer);
  14. }
  15. /**
  16. * Unsubscribe to the event stream
  17. *
  18. * @returns {void}
  19. */
  20. unsubscribe () {
  21. this.observer.cleanup();
  22. }
  23. /**
  24. *
  25. * @returns {boolean}
  26. */
  27. get isComplete () {
  28. return this.observer.isComplete;
  29. }
  30. get onNext () {
  31. return this.observer.onNext;
  32. }
  33. get onError () {
  34. return this.observer.onError;
  35. }
  36. get onComplete () {
  37. return this.observer.onComplete;
  38. }
  39. }