如何将 setTimeout() 方法包装在 Promise 中?

如何将 setTimeout() 方法包装在 Promise 中?

setTimeOut() 方法在特定的毫秒数后执行某些代码或函数。有时,我们需要在特定的延迟后解决或拒绝承诺,我们可以将 setTimeout() 方法与承诺一起使用。

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

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

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

<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 毫秒后解决承诺。

<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,而不是使用 async/await 语法,如示例 2 所示。我们还在 Promise 中使用了 setTimeOut(),如示例 2 所示,延迟一段时间后解决承诺。

<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。用户可以观察上述示例的输出,它在特定毫秒后解决了承诺。

以上就是如何将 setTimeout() 方法包装在 Promise 中?的详细内容,更多请关注编程之家其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)