[x] You understand the JavaScript Event Loop, and can demonstrate this by using setTimeout and setInterval to schedule simple tasks.
[x] You can explain why Asynchronous Programming is important for programs that have blocking and non-blocking tasks.
[x] You can explain the basics of the Client/Server model and HTTP requests and can fetch data from RESTful APIs.
[x] You can break down an asynchronous problem into smaller tasks and solve it using promises. This includes identifying which tasks depend on each other and which are independent:
[dependent tasks:] The return value from one task is required to start the next task, these must be completed in a specific order - .then
[independent tasks:] These tasks do not use each other's return values, they can be completed at the same time - Promise.all
[x] You can fetch data from an API and render it into the DOM using /api-calls, /handlers, and async/await syntax.
[x] You can write unit tests for functions that return promises using async/await syntax.