Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura

subscribeToObservable.ts 666B

1234567891011121314151617
  1. import { Subscriber } from '../Subscriber';
  2. import { observable as Symbol_observable } from '../symbol/observable';
  3. /**
  4. * Subscribes to an object that implements Symbol.observable with the given
  5. * Subscriber.
  6. * @param obj An object that implements Symbol.observable
  7. */
  8. export const subscribeToObservable = <T>(obj: any) => (subscriber: Subscriber<T>) => {
  9. const obs = obj[Symbol_observable]();
  10. if (typeof obs.subscribe !== 'function') {
  11. // Should be caught by observable subscribe function error handling.
  12. throw new TypeError('Provided object does not correctly implement Symbol.observable');
  13. } else {
  14. return obs.subscribe(subscriber);
  15. }
  16. };