add Q functionality to native JS promises (and polyfill Promises for old versions of JS)
github.com/Macmee/enhanced-promises
Macmee/enhanced-promises