用Promise封装一个定时器

简介: 用Promise封装一个定时器

用Promise封装一个定时器函数,这个函数会在指定时间后 resolve,并返回设定的结果值。

下面是实现代码,这个封装的定时器可以像原生Promise一样使用then、catch和finally方法:

/**
 * 用Promise封装的定时器函数
 * @param {number} delay 延迟时间(毫秒)
 * @param {any} value 定时器结束后要返回的值
 * @returns {Promise} 返回一个Promise对象
 */
function delay(delay, value) {
  return new Promise((resolve) => {
    // 使用setTimeout实现延迟
    setTimeout(() => {
      // 延迟结束后resolve,并传递value
      resolve(value);
    }, delay);
  });
}

// 使用示例
console.log('开始执行');

// 1秒后输出"1秒后执行"
delay(1000, "1秒后执行")
  .then(result => {
    console.log(result);
    // 可以继续链式调用,再延迟2秒
    return delay(2000, "再等2秒后执行");
  })
  .then(result => {
    console.log(result);
    return delay(1500); // 也可以不传递返回值
  })
  .then(() => {
    console.log("又过了1.5秒");
  })
  .finally(() => {
    console.log("所有定时任务完成");
  });

这个封装的定时器函数有以下特点:

  1. 接收两个参数:延迟时间(毫秒)和要返回的值
  2. 返回一个Promise对象,在指定延迟后会resolve并返回设定的值
  3. 支持链式调用,可以很方便地实现多个连续的定时操作
  4. 可以配合then、catch(虽然这里不会reject,但可以捕获上游错误)和finally使用
目录
相关文章
|
6月前
|
移动开发 前端开发 JavaScript
在React中使用React Foldable Layout时,如何处理折叠区域的样式问题?
在React中使用React Foldable Layout时,如何处理折叠区域的样式问题?
371 124
|
6月前
|
监控 前端开发 中间件
Vuex 中间件和插件机制有什么优缺点?
Vuex 中间件和插件机制有什么优缺点?
359 125
|
6月前
|
存储 安全 JavaScript
除了加密密钥的安全性,还有哪些方面需要注意 Pinia 插件的安全性?
除了加密密钥的安全性,还有哪些方面需要注意 Pinia 插件的安全性?
345 5
|
6月前
|
Java 数据库 数据安全/隐私保护
Spring 微服务和多租户:处理多个客户端
本文介绍了如何在 Spring Boot 微服务架构中实现多租户。多租户允许单个应用实例为多个客户提供独立服务,尤其适用于 SaaS 应用。文章探讨了多租户的类型、优势与挑战,并详细说明了如何通过 Spring Boot 的灵活配置实现租户隔离、动态租户管理及数据源路由,同时确保数据安全与系统可扩展性。结合微服务的优势,开发者可以构建高效、可维护的多租户系统。
617 127
|
3月前
|
SQL 容灾 Nacos
Seata的部署和集成
本文介绍Seata分布式事务框架的部署与集成。首先下载并解压seata-server-1.5.1,修改application.yml配置,将seataServer.properties配置上传至Nacos作为统一配置中心,并创建所需数据库表。启动tc-server后,注册到Nacos,通过控制台可查看服务状态。各微服务需引入Seata依赖,并在application.yml中配置相关参数。为实现高可用,可搭建多节点TC集群,如GZ和HZ集群,通过Nacos统一管理事务组映射,微服务从Nacos读取client.properties配置,动态切换TC集群连接,提升系统容灾能力。
261 0
|
搜索推荐 前端开发 定位技术
前端开发人员SEO优化技术方案
不同的搜索引擎提供了服务后台常见功能来优化网站搜索
311 2
|
JSON JavaScript 数据格式
Vue中base64编码和解码
Vue中base64编码和解码
695 0
|
前端开发 JavaScript 微服务
微前端架构模式
微前端架构模式

热门文章

最新文章