diff --git a/packages/core/src/bind/connectFactoryObservable.ts b/packages/core/src/bind/connectFactoryObservable.ts index 6553d12..1ccbb36 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