Making sense of JavaScript promises
toptal.com