So, instead of changing the existing API, I decided to add the JavaScript then() API (which I find easier to work with when chaining promises/futures).
Because I cannot read the messages here, this is a one-way street for now. Code committed. Comments through email please, not lyskom.
I included some doc fixes at no extra charge.