From 4fede0db416b4a9ea6ce4ac76951217cf7cf90fc Mon Sep 17 00:00:00 2001 From: Guillaume ARM Date: Wed, 5 Jul 2023 16:28:33 +0200 Subject: [PATCH] feat: Observable correction --- src/Observable.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Observable.ts b/src/Observable.ts index 087a0e8..6278bff 100644 --- a/src/Observable.ts +++ b/src/Observable.ts @@ -3,6 +3,7 @@ */ import { Observer } from './Observer'; +import { Subscriber } from './Subscriber'; import { Subscription, TeardownLogic } from './Subscription'; type SubscribeFunction = (obs: Partial>) => Subscription; @@ -21,13 +22,17 @@ export interface ObservableConstructor { * Implementation */ export class Observable implements IObservable { - constructor(subscriptionFactory: SubscriptionFactory) { - void subscriptionFactory; - throw new Error('TODO'); - } + constructor(private subscriptionFactory: SubscriptionFactory) {} subscribe(obs: Partial>): Subscription { - void obs; - throw new Error('TODO'); + const subscriber = new Subscriber(obs); + + try { + subscriber.add(this.subscriptionFactory(subscriber)); + } catch (e) { + subscriber.error(e); + } + + return subscriber; } }