Sto provando a convertire un oggetto Javascript in un Clojure. Tuttavia, viene visualizzato il seguente errore:ClojureScript - converte l'oggetto JavaScript arbitrario nella mappa Clojure Script
(js/console.log (js->clj e)) ;; has no effect
(pprint (js->clj e)) ;; No protocol method IWriter.-write defined for type object: [object Geoposition]
Sì, questo oggetto proviene dall'API di geolocalizzazione. Suppongo di dover estendere IEncodeClojure
e IWriter
, ma non ho idea di come.
Per esempio per aggiungere il seguente:
(extend-protocol IEncodeClojure
Coordinates
(-js->clj [x options]
(println "HERE " x options)))
produce un errore durante il caricamento il mio codice: Uncaught TypeError: Cannot read property 'prototype' of undefined
Sei sicuro di avere un oggetto lì e non 'undefined'? Cosa produce '(js/console.log (indefinito? E))' rendimento? –
@TimPote Non è indefinito: utilizzando il timbro Clojure, ottengo il nome dell'oggetto. Usando js/console.log ottengo lo stesso oggetto js quando faccio '(js/console.log e)' e '(js/console.log (js-> clj e))'. – nha