0
0
Node.jsframework~30 mins

Promise chaining in Node.js - Mini Project: Build & Apply

Choose your learning style9 modes available
Promise chaining
📖 Scenario: You are building a simple Node.js program that simulates fetching user data and then fetching that user's posts from a server. Each fetch returns a Promise that resolves after a short delay.
🎯 Goal: Build a chain of Promises where you first fetch a user, then fetch the posts of that user, and finally log the posts.
📋 What You'll Learn
Create a function fetchUser that returns a Promise resolving to the user object { id: 1, name: 'Alice' } after 100ms.
Create a function fetchPosts that takes a user ID and returns a Promise resolving to an array of posts [{ id: 1, title: 'Hello World' }, { id: 2, title: 'Learning Promises' }] after 100ms.
Create a variable userId to store the fetched user's ID.
Chain the Promises so that fetchUser is called first, then fetchPosts is called with the userId, and finally the posts are logged.
💡 Why This Matters
🌍 Real World
Promise chaining is used in Node.js to handle sequences of asynchronous tasks, such as fetching data from APIs or databases in order.
💼 Career
Understanding Promise chaining is essential for backend developers working with asynchronous JavaScript, enabling them to write clean, readable, and maintainable code.
Progress0 / 4 steps
1
Create the fetchUser function
Create a function called fetchUser that returns a Promise. This Promise should resolve after 100 milliseconds with the object { id: 1, name: 'Alice' }.
Node.js
Need a hint?

Use new Promise and setTimeout to simulate a delayed response.

2
Create the fetchPosts function
Create a function called fetchPosts that takes a parameter userId and returns a Promise. This Promise should resolve after 100 milliseconds with the array [{ id: 1, title: 'Hello World' }, { id: 2, title: 'Learning Promises' }].
Node.js
Need a hint?

Use userId as a parameter but you don't need to use it inside the function body for this example.

3
Create the userId variable
Create a variable called userId and set it to null. This will hold the ID of the fetched user.
Node.js
Need a hint?

Use let to declare userId and set it to null.

4
Chain the Promises to fetch user and posts
Use fetchUser() and chain a .then() to get the user object. Inside this .then(), set userId to the user's id and return fetchPosts(userId). Chain another .then() to receive the posts and log them using console.log(posts).
Node.js
Need a hint?

Remember to return fetchPosts(userId) inside the first .then() to chain the Promises.