Skip to content

Instantly share code, notes, and snippets.

@tdreyno
Created September 2, 2013 02:24
Show Gist options
  • Save tdreyno/6408723 to your computer and use it in GitHub Desktop.
Save tdreyno/6408723 to your computer and use it in GitHub Desktop.
Parallel json loading in CLJS
(defn load-json-channels-in-parallel
[channels]
(let [ch (chan)]
(go
(loop [open-channels channels
data {}]
(if (empty? open-channels)
(do
(>! ch data)
(close! ch))
(let [[json c] (alts! (vals open-channels))
chan-key (get-key-for-value open-channels c)]
(recur
(dissoc open-channels chan-key)
(assoc data chan-key json))))))
ch))
$.when([$.ajax(), $.ajax(), $.ajax()]).then(function() {
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment