Skip to content

Instantly share code, notes, and snippets.

@autumn-n
Forked from ifesdjeen/ring_middleware_order.clj
Created September 6, 2018 01:50
Show Gist options
  • Save autumn-n/44eb24e7cf57a07a7f86b1b14f53fa93 to your computer and use it in GitHub Desktop.
Save autumn-n/44eb24e7cf57a07a7f86b1b14f53fa93 to your computer and use it in GitHub Desktop.
Ring middleware execution order
(defn handler
[handler]
(println "HANDLER"))
(defn wrap-1
[handler]
(fn [request]
(println "pre-1")
(handler request)
(println "post-1")))
(defn wrap-2
[handler]
(fn [request]
(println "pre-2")
(handler request)
(println "post-2")))
(defn wrap-3
[handler]
(fn [request]
(println "pre-3")
(handler request)
(println "post-3")))
;; (wrap3 (wrap-2 (wrap-1 handler)))
((-> handler
wrap-1
wrap-2
wrap-3) {})
;; pre-3
;; pre-2
;; pre-1
;; HANDLER
;; post-1
;; post-2
;; post-3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment