Ich versuche ein Javascript-Objekt in ein Clojure zu konvertieren. Ich erhalte jedoch den folgenden Fehler:ClojureScript - beliebiges JavaScript-Objekt in Clojure-Script-Map konvertieren
(js/console.log (js->clj e)) ;; has no effect
(pprint (js->clj e)) ;; No protocol method IWriter.-write defined for type object: [object Geoposition]
Ja, dieses Objekt stammt aus der Geolocation API. Ich nehme an, dass ich IEncodeClojure
und IWriter
verlängern muss, aber ich habe keine Ahnung wie.
Zum Beispiel Hinzufügen des folgenden:
(extend-protocol IEncodeClojure
Coordinates
(-js->clj [x options]
(println "HERE " x options)))
ergibt einen Fehler, wenn mein Code Laden: Uncaught TypeError: Cannot read property 'prototype' of undefined
Sind Sie sicher, dass Sie ein Objekt dort haben und nicht 'undefined'? Was ergibt '(js/console.log (undefined? E))? –
@TimPote Es ist nicht undefiniert: benutze Clojure Timbre, ich bekomme den Namen des Objekts. Mit js/console.log bekomme ich das gleiche js-Objekt, wenn ich '(js/console.log e)' und '(js/console.log (js-> clj e))' mache. – nha