Friday, August 29, 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
32249 POSTS0 COMMENTS
Milvus
80 POSTS0 COMMENTS
Nango Kala
6617 POSTS0 COMMENTS
Nicole Veronica
11792 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11838 POSTS0 COMMENTS
Shaida Kate Naidoo
6731 POSTS0 COMMENTS
Ted Musemwa
7012 POSTS0 COMMENTS
Thapelo Manthata
6689 POSTS0 COMMENTS
Umr Jansen
6701 POSTS0 COMMENTS