This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-08-28
Channels
- # anglican (2)
- # announcements (2)
- # babashka (41)
- # babashka-circleci-builds (1)
- # beginners (45)
- # brompton (2)
- # calva (13)
- # cider (13)
- # clj-kondo (14)
- # cljsrn (6)
- # clojure (60)
- # clojure-europe (4)
- # clojure-nl (3)
- # clojurescript (1)
- # code-reviews (3)
- # conjure (2)
- # cryogen (5)
- # datomic (22)
- # fulcro (13)
- # graalvm (19)
- # introduce-yourself (1)
- # kaocha (2)
- # leiningen (2)
- # lsp (1)
- # malli (4)
- # meander (1)
- # music (1)
- # news-and-articles (2)
- # off-topic (17)
- # polylith (6)
- # practicalli (2)
- # react (15)
- # reactive (1)
- # reagent (8)
- # reitit (2)
- # releases (1)
- # rum (10)
- # shadow-cljs (6)
- # spacemacs (4)
- # sql (2)
- # tools-deps (4)
- # xtdb (21)
Not sure exactly where to ask this, does this make sense to you as an asynchronous middleware for wrapping an asynchronous function around a handler?
(defn wrap-async
([af on-success on-failure]
(wrap-async af identity on-success on-failure))
([af before on-success on-failure]
(fn -wrap [-next]
(fn -async [ctx respond raise]
(let [ctx (before ctx)]
(letfn [(-on-success [result] (-next (on-success ctx result)) respond raise)
(-on-failure [?error] (raise (on-failure ctx ?error)))]
(af ctx -on-success -on-failure)))))))