I-Code, der so etwas wie die unten aussieht:Websocket Rückruf nicht aktualisiert, wenn figwheel nachlädt
(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))
Ich verwende figwheel
. Ich habe bemerkt, dass wenn ich meine Callbacks (on-message
, on-error
, etc) ändere, die App neu lädt, aber alte Versionen dieser Funktionen immer noch aufgerufen werden.
(defn on-message [event]
; Changed. Requires hard reload to be called on websocket message.
(do-other-stuff))
Ich verstehe, dass dies daran liegt, dass die alte Version der Funktion immer noch von der Websocket referenziert wird.
Gibt es ein Muster, das diesen Code nachladbar machen würde? Vielleicht sollte ich core/async
verwenden? Wenn ja, wie würde das aussehen?
Ich denke, Sie haben Recht, nicht "nachladbar" Code ist genau das Problem. Vielen Dank für den Link und die Terminologie, ich habe die Frage aktualisiert und werde nachladbaren Code recherchieren. – meshy