clojure-italy

🇮🇹
alan 2019-09-17T15:17:53.005Z

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.

alan 2019-09-17T15:19:11.005900Z

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

alan 2019-09-17T15:20:48.007300Z

(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 😅

alan 2019-09-17T15:21:38.008100Z

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

alan 2019-09-17T15:21:58.008500Z

Sto usando pipeline-async per semplificare la cosa

alan 2019-09-17T16:26:47.009700Z

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

reborg 2019-09-17T18:41:35.010100Z

allora prob anche solo cat (no parens)