我正在使用一個代理,它引用一組來跟蹤我需要通知事件的用戶。我希望它會自動初始化在第一時間其所謂的,所以這是我迄今所做的:Clojure - 如何自動初始化一次
(declare notify-users!)
(def users-to-notify
(future
(def _utn (agent #{}))
(add-watch _utn :utn notify-users!)
_utn))
(defn update-user [user-id]
(send-off @users-to-notify conj user-id))
(defn notify-users! [key reference old-state new-state]
(println old-state " -> " new-state))
這似乎是工作,但我不知道它有這種方法的任何問題,我我不知道。
defonce應該工作 – KobbyPemson
重要的是它不被初始化之前它被稱爲? –
這並不重要;我只是不擔心它。 – pickwick