DEV Community

Rakshambika
Rakshambika

Posted on

Methods in Promise

Methods in Promise

Promise methods are divided into Instance Methods and Static Methods.

1. Instance Methods

These methods are called on a Promise object.

const promise = new Promise((resolve, reject) => {
    resolve("Success");
});
Enter fullscreen mode Exit fullscreen mode

.then()

Handles a successful result.

promise.then((data) => {
    console.log(data);
});
Enter fullscreen mode Exit fullscreen mode

Output:

Success
Enter fullscreen mode Exit fullscreen mode

.catch()

Handles errors or rejected promises.

const promise = new Promise((resolve, reject) => {
    reject("Something went wrong");
});

promise.catch((error) => {
    console.log(error);
});
Enter fullscreen mode Exit fullscreen mode

Output:

Something went wrong
Enter fullscreen mode Exit fullscreen mode

.finally()

Runs whether the promise is fulfilled or rejected.

const promise = new Promise((resolve, reject) => {
    resolve("Done");
});

promise
    .then((data) => console.log(data))
    .finally(() => console.log("Finished"));
Enter fullscreen mode Exit fullscreen mode

Output:

Done
Finished
Enter fullscreen mode Exit fullscreen mode

2. Static Methods

These methods are called directly on the Promise class.

Syntax: Promise.methodName()
Enter fullscreen mode Exit fullscreen mode

Promise.resolve()

Creates an already fulfilled promise.

const promise = Promise.resolve("Hello");

promise.then((data) => {
    console.log(data);
});
Enter fullscreen mode Exit fullscreen mode

Output

Hello
Enter fullscreen mode Exit fullscreen mode

Promise.reject()

Creates an already rejected promise.

const promise = Promise.reject("Error");

promise.catch((error) => {
    console.log(error);
});
Enter fullscreen mode Exit fullscreen mode

Output

Error
Enter fullscreen mode Exit fullscreen mode

Promise.all()

Waits for all promises to succeed.

const p1 = Promise.resolve("Task 1");
const p2 = Promise.resolve("Task 2");
const p3 = Promise.resolve("Task 3");

Promise.all([p1, p2, p3])
    .then((result) => {
        console.log(result);
    });
Enter fullscreen mode Exit fullscreen mode

Output

["Task 1", "Task 2", "Task 3"]
Enter fullscreen mode Exit fullscreen mode

If any promise fails:

const p1 = Promise.resolve("Task 1");
const p2 = Promise.reject("Task 2 Failed");
const p3 = Promise.resolve("Task 3");

Promise.all([p1, p2, p3])
    .catch((error) => {
        console.log(error);
    });
Enter fullscreen mode Exit fullscreen mode

Output

Task 2 Failed
Enter fullscreen mode Exit fullscreen mode

Promise.allSettled()

Waits for all promises to complete, whether success or failure.

const p1 = Promise.resolve("Success");
const p2 = Promise.reject("Failed");

Promise.allSettled([p1, p2])
    .then((result) => {
        console.log(result);
    });
Enter fullscreen mode Exit fullscreen mode

Output

[
  { status: "fulfilled", value: "Success" },
  { status: "rejected", reason: "Failed" }
]
Enter fullscreen mode Exit fullscreen mode

Promise.race()

Returns the result of the first promise that settles (success or failure).

const p1 = new Promise((resolve) => {
    setTimeout(() => resolve("Task 1"), 3000);
});

const p2 = new Promise((resolve) => {
    setTimeout(() => resolve("Task 2"), 1000);
});

Promise.race([p1, p2])
    .then((result) => {
        console.log(result);
    });
Enter fullscreen mode Exit fullscreen mode

Output

Task 2
Enter fullscreen mode Exit fullscreen mode

Because p2 finished first.


Promise.any()

Returns the first successful promise.

const p1 = Promise.reject("Error 1");

const p2 = new Promise((resolve) => {
    setTimeout(() => resolve("Success"), 2000);
});

const p3 = Promise.reject("Error 3");

Promise.any([p1, p2, p3])
    .then((result) => {
        console.log(result);
    });
Enter fullscreen mode Exit fullscreen mode

Output

Success
Enter fullscreen mode Exit fullscreen mode

Top comments (0)