How do Promises work and how do they differ from callbacks? | LetsGit.IT