+1 to userland. I see other approaches causing more problems. BTW: The only time I use promises is when the platform explicitly requires it, and right now that's just MozillaView. While I think it looks awesome, I view Promises as a luxury right now and not a standard feature as of yet.
I also really wish specs wouldn't rely on code that only exists on the very latest browsers. It just makes life harder on people who have to implement stuff.