C'est ce que j'utilise pour effectuer un appel distant à l'aide de la bibliothèque clj-http.Comment utiliser un atome qui a le résultat d'une requête http dans le réactif
(defn make-remote-call [endpoint]
(go (let [response (<! (http/get endpoint
{:with-credentials? false}))])))
(reset! app-state response)
;(js/console.log (print response)))))
L'impression ci-dessus pour la console fonctionne bien
(defn call []
(let [x (r/atom (make-remote-call site))]
(js/console.log x)
cette recrache #object[cljs.core.async.impl.channels.ManyToManyChannel]
dans la console.
Que puis-je faire pour renvoyer la réponse dans la fonction make-remote-call
. J'ai utilisé la réponse pour définir la valeur d'un atome. Essayer de référencer des valeurs à l'intérieur de l'atome se traduit par des erreurs comme "Uncaught Error: [object Object] is not ISeqable"
et No protocol method IDeref.-deref defined for type null:
Une idée de ce que je pourrais faire de mal?
S'il vous plaît laissez-moi savoir si je dois fournir toute information supplémentaire