From 6002f71cfd26763682c3e7b4c3331b144bbc7cc1 Mon Sep 17 00:00:00 2001 From: Josep M Sobrepere Date: Thu, 15 Oct 2020 01:24:42 +0200 Subject: [PATCH] perf(core): small perf improvement for factoryObservable --- packages/core/src/bind/connectFactoryObservable.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/core/src/bind/connectFactoryObservable.ts b/packages/core/src/bind/connectFactoryObservable.ts index 6553d12c..1ccbb365 100644 --- a/packages/core/src/bind/connectFactoryObservable.ts +++ b/packages/core/src/bind/connectFactoryObservable.ts @@ -55,13 +55,14 @@ export default function connectFactoryObservable( const publicShared$ = new Observable((subscriber) => { const inCache = cache.get(keys) - const source$ = inCache - ? inCache[0] === publicShared$ - ? sharedObservable$ - : inCache[0] - : getSharedObservables$(input)[0] + let source$: BehaviorObservable = sharedObservable$ - publicShared$.getValue = source$.getValue + if (!inCache) { + cache.set(keys, result) + } else if (inCache[0] !== publicShared$) { + source$ = inCache[0] + publicShared$.getValue = source$.getValue + } return source$.subscribe(subscriber) }) as BehaviorObservable