You can return the first from a function and it will be a promise. Promises are reusable. Also they contain exceptions in their context. Those can be handled at any point of the promise-chain.
So promises are way more composable than callback based solutions.
So promises are way more composable than callback based solutions.