allow multiple subscribers on same node

phoen
Daniel Barlow 2022-02-20 12:24:36 +00:00
parent 117cb8be47
commit 3d64e42142
2 changed files with 9 additions and 1 deletions

View File

@ -57,3 +57,11 @@
(s:observe [:foo :bar] #(set win 4))
(s:update [:foo :bar :baz] 42)
(expect (= win 2)))
(let [s (observable.new {:foo {:bar {:baz 43}}})]
(var win 0)
;; multiple observers can live on same subtree
(s:observe [:foo :bar] #(set win (+ win 1)))
(s:observe [:foo :bar] #(set win (+ win 1)))
(s:update [:foo :bar :baz] 42)
(expect (= win 2)))

View File

@ -21,7 +21,7 @@
(let [el (get data self path)]
(when el
(if el._subscribers
(el._subscribers:insert fun)
(table.insert el._subscribers fun)
(tset el :_subscribers [fun])))))
(fn new [data]