why use continuation functions (... println) instead of returning values ? Is it because of the underlying JS API is async ? Maybe use something like chans to pipe async values ? Just doesn't seem clojureish to me :D
I wish ClojureScript guys would abstract 'go' macro from core.async in to the clojurescript core, provide well documented protocols that it uses and include implementation for JS Promises by default (then leave core.async to expose chans for those who need channels trough those protocols).
Hell if I knew they wouldn't be against doing this I might even do it my self in a few weeks.
Considering the async nature of JS it makes sense to provide such a construct as a part of language/standard library.
I wouldn't mind adding a blocking variant of these functions, and use async internally to make that happen. But, not there yet.