Escaping Callback Hell with ClojureScript macros
brianmckenna.org
brianmckenna.org
https://github.com/joyent/node/wiki/Async-exception-handling
Node encourages people to create functions like:
function(err, x) {
if(err) handle(err);
}
This way they avoid the whole async + try/catch problem. It should be possible to define a macro that does something similar.Avoiding that trap, individual try/catch statements still work fine:
(timeout/timeout-macro
(pn "Hello")
(try*
(pn (throw "Throwing up"))
(catch e (pn (str "There was an error: " e))))
(pn "World"))