If Node.js is single-threaded, then how does it handle concurrency?
What are the advantages of using promises instead of callbacks?