Promises are better than being stuck in callback hell, but ES7 async functions (async/await) are way better: http://www.sitepoint.com/simplifying-asynchronous-coding-es7...
The best part: you can use it today with babel (I'm using it in browser and on node thanks to the power of webpack, babel and hot reloading).