以下のようなコードがあります。
(defn on-message [event]
(do-stuff))
(defn build-websocket []
(let [ws (js.window.WebSocket. "ws://localhost:8888/ws/")]
(set! (.-onopen ws) on-open)
(set! (.-onclose ws) on-close)
(set! (.-onerror ws) on-error)
(set! (.-onmessage ws) on-message)
ws))
を使用してfigwheel
います。on-message
コールバック ( 、on-error
など) を変更すると、アプリはリロードされますが、これらの関数の古いバージョンが引き続き呼び出されることに気付きました。
(defn on-message [event]
; Changed. Requires hard reload to be called on websocket message.
(do-other-stuff))
これは、古いバージョンの関数がまだ websocket によって参照されているためだと理解しています。
このコードをリロード可能にするパターンはありますか? おそらく私は使用する必要がありcore/async
ますか?もしそうなら、それはどのように見えますか?