Re:Error Handling in Node.js
by prodigal_erik on Friday November 04, 2016 @02:59AM
(#12870819)
The trouble with "go foo()" is that it's fire-and-forget; foo's return value is literally discarded. When you need to know what happened (which should be nearly always), foo and every caller all have to opt-in to passing any result and/or error and/or panic value over a channel or something. It's one of many places where Go gives you tiny pieces of the right thing and makes you assemble them yourself.
[ Parent
| on HN ]
Either that or you wrap it up in function that makes a channel, calls the function with it, then waits on that channel for the return value. Basically you can go back/forth between async and sync(ish) in go much more easily than in JavaScript.
In saying that though, if you have to do it a lot it probably means some of those functions should have been synchronous in the first place.