Thursday, October 23, 2025
HomeLanguagesJavascriptHow to wrap setTimeout() method in a promise ?

How to wrap setTimeout() method in a promise ?

To wrap setTimeout in a promise returned by a future. We can wrap setTimeout in a promise by using the then() method to return a Promise. The then() method takes up to two arguments that are callback functions for the success and failure conditions of the Promise. This function returns a promise. There can be two different values if the function called onFulfilled that’s mean the promise is fulfilled. If the function onRejected is called that means the promise is rejected. 

Syntax:

Promise.then(onFulfilled, onRejected)

The below example will illustrate the approach: 

Example 1: In this example, we will see the use of Promise with then() block and setTimeout() method.

HTML




<!DOCTYPE html>
<html>
  
<head>
    <title>
        How to wrap setTimeout in a promise?
    </title>
</head>
  
<body>
    <h1 style="color:green;">
        neveropen
    </h1>
  
    <h3>
        How to wrap setTimeout in a promise?
    </h3>
    <br>
  
    <button onclick="change()">
        Click to print
    </button>
    <p id="gfg"></p>
    <script>
        function change() {
            return new Promise(function (resolve, reject) {
          
                // Setting 2000 ms time
                setTimeout(resolve, 2000);
            }).then(function () {
                document.getElementById("gfg").innerHTML = 
                "Wrapped setTimeout after 2000ms";
            });
        }
    </script>
  
</body>
  
</html>


Output:

How to wrap setTimeout() method in a promise ?

How to wrap the setTimeout() method in a promise?

Example 2: In this example, we will see the use of Promises with the async function and setTimeOut() method.

HTML




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" 
          content="IE=edge">
    <meta name="viewport" 
          content="width=device-width, 
                   initial-scale=1.0">
</head>
<body>
    <h1 style="color:green;">
        neveropen
    </h1>
      
    <h3>
        How to wrap setTimeout in a promise?
    </h3>
    <br>
      
    <button onclick="resolvePromise()">
        Click to print
    </button>
    <p id="gfg"></p>
    <script>
        let gfg = document.getElementById('gfg');
  
        // function for promise example
        async function resolvePromise() {
            let newPromise = 
                new Promise(function (resolve, reject) {
                setTimeout(function () {
                    resolve("Hello Geeks. Wrapped 
                             setTimeout() in a promise");
                }, 1000);
            });
            let result = await newPromise;
            gfg.innerHTML = result;
        }
    </script>
</body>
</html>


Output:

 

Reference: Promise.prototype.then() Method

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS