4 ms·
got a link? I'd be interested to know how it deals with errors / exceptions, for example.
by gfxmonk 15y ago
got a link? I'd be interested to know how it deals with errors / exceptions, for example.
- weixiyen 15y agohttps://gist.github.com/1250084 https://gist.github.com/1250084
- deleted 15y ago[deleted]
- gfxmonk 15y agoLooks concise, but doesn't much help with the fundamental problems of callback code - exceptions don't work right, and "callbacks all the way down" whenever something starts having any async computation.
- weixiyen 15y agowhat do you mean by this -> "callbacks all the way down" whenever something starts having any async computation.
- gfxmonk 15y agoImagine function a calls b() and function b calls c(), and they're all sync. Now, let's say c() changes and needs to call someAsyncFunction() and provide a callback. Which means c itself needs to take a callback. Which means b needs to provide a callback, so b needs to also take a callback, so a needs to provide a callback. And so forth. Callbacks are infectious - once anybody in the call stack needs one, everybody needs one even if they just pass it on down the stack. Unless you don't need to do anything with return values, but that's fairly rare.
- snprbob86 15y agoI've been using: https://github.com/caolan/async https://github.com/caolan/async It looks pretty decent in CoffeeScript: blah = (done) -> async.series [ (next) -> foo next (next) => @bar.baz 1, 2, 3, next (next) -> x = y z w next ], done