Lesson 13/100

Tutorials Node.js Tutorial

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
Lesson 13 of 100 · Module 2: Async Programming · BEGINNER
Topic: Promises · Level: BEGINNER · Read time: ~12 min + hands-on

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

Explain it simply

A Promise represents a value that will exist later — success or failure. You chain .then and .catch instead of nesting callbacks.

Think of it like this: Async code is like ordering food on an app — you do not stand at the counter until it is ready; you get a notification when it is done.

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)

  1. Your code starts a task (read file, query DB, timer).
  2. Node continues other work instead of waiting idle.
  3. When the task finishes, your callback, Promise, or await runs.
  4. Errors go in catch or .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

  1. Run the example on package.json
  2. Add a .then that parses JSON
  3. Break the path on purpose and see .catch fire
Tip: Promise.all runs several async tasks in parallel.

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

Continue learning

Previous: Callbacks — Complete Guide

Next: Async/Await — Complete Guide

Lesson 13 of 100 · Node.js Tutorial

Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

Node.js Tutorial
Course syllabus

Node.js Tutorial

Module 1: Node.js Foundations
Module 2: Async Programming
Module 3: Express.js & EJS
Module 4: REST APIs & Databases
Module 5: Real-Time & Event Systems
Module 6: Advanced Node.js
Module 7: Performance & Security
Module 8: Testing & Deployment
Module 9: Latest Node.js Features
Module 10: Enterprise Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details