Summary
At the start of this chapter, we mentioned that Node.js can be challenging due to its asynchronous nature, especially for developers coming from other platforms. However, as you’ve seen, you can make asynchronous APIs work to your advantage. The tools you’ve learned about are flexible and provide solid solutions to many common problems, while also allowing for different programming styles to suit individual preferences.
We’ve also continued refactoring and improving our web crawler example throughout the chapter. When working with asynchronous code, it can sometimes be tricky to find the right balance between simplicity and effectiveness, so take your time to digest the concepts covered and experiment with them.
Our journey with asynchronous Node.js programming is just beginning. In the next few chapters, you’ll dive into other widely used techniques like promises and async/await. Once you’re familiar with all these approaches, you...