Promises — Complete Guide
Promises — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Node.js Tutorial on Toolliyo Academy.
On this page
Promises
This lesson covers Promises. Here is the idea in simple words, then we write real code.
What you will learn
- What promises means — in normal words, not textbook words
- How it works step by step
- Code you can run today on your laptop
- Where teams use this in real projects
Before you start
- Software: Node.js LTS from nodejs.org, VS Code, and a terminal
- Knowledge: Earlier lessons in this Node.js course
- Previous lesson: Callbacks — Complete Guide
Explain it simply
A Promise represents a value that will exist later — success or failure. You chain .then and .catch instead of nesting callbacks.
Why developers use this
- Cleaner than deep callback nesting
- Works well with fetch and fs/promises
- Foundation for async/await
How it works (step by step)
- Your code starts a task (read file, query DB, timer).
- Node continues other work instead of waiting idle.
- When the task finishes, your callback, Promise, or
awaitruns. - Errors go in
catchor.catch()— never ignore them.
Code example — type this yourself
const fs = require('fs/promises');
fs.readFile('package.json', 'utf8')
.then((text) => console.log('Length:', text.length))
.catch((err) => console.error('Failed:', err.message));
.then runs on success, .catch on failure. fs/promises returns a Promise automatically.
What each part does
const fs = require('fs/promises');— Loads a built-in module or package you installed with npm.fs.readFile('package.json', 'utf8')— Line 2: runs as written..then((text) => console.log('Length:', text.length))— Prints to the terminal — great for learning; use proper logging in production..catch((err) => console.error('Failed:', err.message));— Catches errors so one failure does not crash the whole server.
Real life: where Promises shows up
An online store uses Promises so hundreds of users can check order status at once. While one request waits for the database, Node handles other users instead of freezing. Start small: one feature working beats a perfect architecture on paper.
Try it yourself — hands-on
- Run the example on package.json
- Add a .then that parses JSON
- Break the path on purpose and see .catch fire
Common mistakes (avoid these)
- Forgetting return inside .then when chaining — the next .then gets undefined.
Interview note
Interviewers often ask: “What is Promises?” Answer in one sentence, then give a tiny example you actually ran.
Summary
- Promises have pending, fulfilled, and rejected states
- Use .catch for errors
- Prefer fs/promises over callback fs
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!