JavaScript 如何将setTimeout()方法包裹在一个Promise中

JavaScript 如何将setTimeout()方法包裹在一个Promise中

setTimeOut()方法在一个特定的毫秒数后执行一些代码块或函数。有时,我们要求在一个特定的延迟后解决或拒绝Promise,我们可以在Promise中使用setTimeout()方法。

在JavaScript中,一个Promise是一个返回异步操作结果的对象。在这里,我们将学习使用setTimeOut()方法来解决或拒绝延迟后的Promise。

例子1(没有setTimeOut()方法的Promise)

在下面的例子中,我们使用了Promise()构造函数来创建一个新的Promise。诺言构造函数将一个回调函数作为参数,回调函数执行 resolve() 方法来解析诺言。它演示了诺言的基本用途。

<html>
<body>
   <h2>Using the Promises without setTimeOut() method in JavaScript</h2>
   <div id = "content"> </div> <br />
   <button onclick = "start()"> Resolve Promise </button>
   <script>
      let content = document.getElementById('content');

      // function for promise example
      function start() {
         let promise = new Promise(function (resolve, reject) {
            resolve("Promise is resolved!");
         });
         promise.then((value) => {
            content.innerHTML = "The result from resolved promise is " + value;
         });
      } 
   </script>
</body>
</html>

语法

用户可以按照下面的语法来使用Promise的setTimeOut()方法。

new Promise(function (resolve, reject) {
   setTimeout(function () {
      resolve();
   }, delay);
}); 

在上面的语法中,我们在setTimeOut()方法中执行resolve()方法。它在 “延迟 “的毫秒数之后执行 resolve() 方法。

示例2(带有异步函数和setTimeOut()方法的Promise)

在下面的例子中,我们已经创建了一个名为 “resolvePromise “的异步函数。我们已经创建了Promise,并将其存储在’sumPromise’变量中。之后,我们使用 await 关键字来暂停函数的执行,直到Promise得到解决。

用户可以在输出中观察到,每当他们按下按钮,它在2000毫秒后解决了Promise。

<html>
<body>
   <h3>Using Promises with setTimeOut() method and async functions in JavaScript</h3>
   <div id = "content"> </div> <br>
   <button onclick = "resolvePromise()"> Resolve Promise </button>
   <script>
      let content = document.getElementById('content');

      // function for promise example
      async function resolvePromise() {
         let sumPromise = new Promise(function (resolve, reject) {
            setTimeout(function () {
               resolve("The sum of all data is 100.");
            }, 3000);
         });
         let result = await sumPromise;
         content.innerHTML = "The resolved promise's result is " + result;
      }
   </script>
</body>
</html>

例3(使用then()块和setTimeout()方法的Promise)

在下面的例子中,我们使用了then()块来解决Promise,而不是像例子2中那样使用async/await语法。我们还在Promise中使用了setTimeOut(),就像在例子2中一样,在一些延迟后解决Promise。

<html>
<body>
   <h2>Using the Promises with setTimeOut() method in JavaScript</h2>
   <div id = "content"></div>
   <br>
   <button onclick = "resolvePromise()"> Resolve Promise </button>
   <script>
      let content = document.getElementById('content');

      // function for promise example
      function resolvePromise() {
         let promise = new Promise(function (resolve, reject) {
            setTimeout(function () {
               resolve("This promise is resolved after 2000 milliseconds");
            }, 2000);
         });
         promise.then(function (value) {
            content.innerHTML = "The resolved promise's result is " + value;
         });
      }
   </script>
</body>
</html>

本教程教会了用户如何将setTimeOut()方法包裹在Promise中。此外,我们还使用了async/await语法和then()块来解决Promise。用户可以观察到上述例子的输出,它在特定的毫秒后解决了Promise。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程