setTimeout链式调用

作者: 小枫枫

临枫的项目经历分享给你们啦~

扫码交朋友

标签:

特别声明:文章有少部分为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

yanjing.jpeg

链式延时调用

 

 

 

export class AwaitTimeout {
  constructor() {
    // 任务池
    this.tasks = [];
    this.tasks.push(() => {
      this.then();
    });
  }
  // 执行
  running() {
    setTimeout(() => {
      this.then();
    });
    return this
  }
  sleep(duration, fn) {
    this.tasks.push(() => {
      setTimeout(() => {
        fn();
        this.then();
      }, duration);
    });
    return this;
  }
  then() {
    let task = this.tasks.shift();
    task && task();
    return this;
  }
}

 

使用:

// 引入
import { AwaitTimeout } from "../../utils/swiper";
const setAwaitTimeout = new AwaitTimeout();

// 使用
setAwaitTimeout
.running()
.sleep(1000, () => {
  console.log("过了1秒");
})
.sleep(1000, () => {
  console.log("过了2秒");
})
.sleep(1000, () => {
  console.log("过了3秒");
})
.sleep(1000, () => {
  console.log("过了4秒");
});

 

 

本文最后更新于2022-9-15,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
分享到:
打赏

作者: 小枫枫, 转载或复制请以 超链接形式 并注明出处 小枫枫不疯喔
原文地址: 《setTimeout链式调用》 发布于2022-9-15

评论

切换注册

登录

您也可以使用第三方帐号快捷登录

切换登录

注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏