Fork me on GitHub
#clojure-italy
<
2019-09-17
>
alan15:09:53

Ciao ragà ho un problema (probabilmente stupido) con core.async e http-kit. In sostanza devo chiamare più endpoint allo stesso tempo, parsare la risposta e usare queste per fare altre chiamate.

alan15:09:11

Il problema è che ogni chiamata mi produce una sequence di risultati, ma le chiamate successive le vorrei fare da un solo canale in modo flat

alan15:09:48

(defn get-search-page
  [url chan]
  (kit/get url {:client client}
           #(doseq [i (parse-links (Jsoup/parse (:body %)))]
                   (async/put! chan i))))
Il problema è qui sopra, quando vado poi a prendere il risultato mi ritrovo solo una sequenza di risultati senza tutti gli altri e proprio non ne riesco a venire a capo 😅

alan15:09:38

In pratica parse-links mi sputa una sequence di url partendo da un solo url, e io vorrei buttare tutto sullo stesso canale

alan15:09:58

Sto usando pipeline-async per semplificare la cosa

alan16:09:47

Risolto: ho buttato un (mapcat identity) nel canale di output. Ora mi voglio solo buttare dalla finestra 😆

reborg18:09:35

allora prob anche solo cat (no parens)