The CSP thing is something I've been looking at recently, and while it seems like it's a little bit lower-level than things like Rx, it seems like channels are more flexible streams (i.e. channels are two-way so you can do back-pressure etc.). I've been playing with
https://github.com/ubolonton/js-csp and it's pretty nice; the "yield" statements everywhere are a little wonky, but otherwise it seems like you can implement some pretty sophisticated concurrency between processes with pretty straight-forward code.
For examples of that sort of thing, David Nolen and James Long have written some really great articles on the subject:
http://swannodette.github.io/2013/07/12/communicating-sequen...
http://swannodette.github.io/2013/07/31/extracting-processes
http://jlongster.com/Taming-the-Asynchronous-Beast-with-CSP-...
There was also an article recently that described a flux-like architecture using channels that I found pretty interesting, but I can't track it down right now.