UNPKG

nanostores

Version:

A tiny (265 bytes) state manager for React/Preact/Vue/Svelte with many atomic tree-shakable stores

22 lines (16 loc) 446 B
export let effect = (stores, callback) => { if (!Array.isArray(stores)) stores = [stores] let unbinds = [] let lastRunUnbind let run = () => { lastRunUnbind && lastRunUnbind() let values = stores.map(store => store.get()) lastRunUnbind = callback(...values) } unbinds = stores.map(store => store.listen(run)) run() return () => { unbinds.forEach(unbind => unbind()) lastRunUnbind && lastRunUnbind() } }