Making sense of JavaScript promises | Dark Hacker News