      [com.wsscode.pathom.profile :as pp]))

(defn sleep [n]
  (let [c (async/chan)]
    (js/setTimeout #(async/put! c ::done) n)
    c))

(def reader
  {:async-info
   (fn [_]
     (go-catch
       (&lt;? (sleep (+ 100 (rand-int 1000))))
       "From async"))

   :async-error
   (fn [_]
     ; go catch will catch any exception and return then as the channel value
     (go-catch
       ; &lt;? macro will re-throw any exception that get read from the channel
       (&lt;? (sleep (+ 100 (rand-int 1000))))
   