JavaScript Medium technical 1 views 1 min read

What is a promise?

Peer-reviewed by HireXTech Technical Panel • Updated for 2025/2026 hiring • Editorial standards
Practise this track
Interviewer Expectations for this Question
01
Core Competency

Assesses fundamental understanding of JavaScript conventions, runtime behavior, and memory/performance considerations.

02
Evaluation Criteria

Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.

Comprehensive Model Answer Verified Solution

A Promise is a JavaScript object that represents the eventual completion (or failure) of an asynchronous operation and its resulting value. It acts as a placeholder for a value that may not be available yet but will be resolved in the future.

A Promise can be in one of three states:

  • pending: Initial state, neither fulfilled nor rejected.
  • fulfilled: The operation completed successfully.
  • rejected: The operation failed (e.g., due to a network error).

#### Promise Syntax

    const promise = new Promise(function (resolve, reject) {
      // Perform async operation
    });
    

#### Example: Creating and Using a Promise

    const promise = new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve("I'm a Promise!");
      }, 5000);
    });

    promise
      .then((value) => console.log(value)) // Logs after 5 seconds: "I'm a Promise!"
      .catch((error) => console.error(error))  // Handles any rejection
      .finally(() => console.log("Done"));     // Runs regardless of success or failure
    

In the above example:

  • A Promise is created to handle an asynchronous operation with resolve and reject callbacks.
  • The setTimeout resolves the promise with a value after 5 seconds.
  • .then(), .catch(), and .finally() are used to handle success, errors, and cleanup respectively.

The action flow of a promise will be as below,

![Screenshot](images/promises.png)

Candidate Response Strategy & Interview Tips

  1. Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
  2. Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
  3. Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
  4. Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.
Related Topics & Skills
Spotted an error or have an alternative solution?