From d81f5690ad298d07397e4b29a80d5d59b6a2b2b1 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Tue, 21 Jan 2020 13:12:19 -0500 Subject: [PATCH] fix deriving from rxjs observables (#4298) --- src/runtime/internal/utils.ts | 4 ++-- src/runtime/store/index.ts | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/runtime/internal/utils.ts b/src/runtime/internal/utils.ts index c94a135869..5ca33c2c73 100644 --- a/src/runtime/internal/utils.ts +++ b/src/runtime/internal/utils.ts @@ -48,8 +48,8 @@ export function validate_store(store, name) { } } -export function subscribe(store, callback) { - const unsub = store.subscribe(callback); +export function subscribe(store, ...args) { + const unsub = store.subscribe(...args); return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; } diff --git a/src/runtime/store/index.ts b/src/runtime/store/index.ts index 64a63d4179..2bbfdfcd60 100644 --- a/src/runtime/store/index.ts +++ b/src/runtime/store/index.ts @@ -1,4 +1,4 @@ -import { run_all, noop, safe_not_equal, is_function, get_store_value } from 'svelte/internal'; +import { run_all, subscribe, noop, safe_not_equal, is_function, get_store_value } from 'svelte/internal'; /** Callback to inform of a value updates. */ type Subscriber = (value: T) => void; @@ -173,7 +173,8 @@ export function derived(stores: Stores, fn: Function, initial_value?: T): Rea } }; - const unsubscribers = stores_array.map((store, i) => store.subscribe( + const unsubscribers = stores_array.map((store, i) => subscribe( + store, (value) => { values[i] = value; pending &= ~(1 << i);