The "good asynchronous" code in Golang is straight-line code that would be called "synchronous" in Node.
Part of the problem is that even as an attempt at a "non-synchronous" interface, this seems clumsy. It demand-creates new channels for requests. That doesn't seem right.