首页 > 其他分享 >js实现 delay 和 sleep函数

js实现 delay 和 sleep函数

时间:2022-08-17 23:55:46浏览次数:54  
标签:resolve console log args js delay sleep

console.log("====sleep===");
// sleep  等待几秒
const sleep = (seconds) =>
    new Promise((resolve) => setTimeout(resolve, seconds));
async function sleepTest() {
    console.log("start");
    await sleep(1000);
    console.log("stop");
}
sleepTest();
console.log("====delay===");
// delay  延迟几秒后执行函数
function delay(fn, seconds, ...args) {
    return new Promise((resolve) =>
        setTimeout(() => {
            // console.log(args);
            Promise.resolve(fn(...args)).then(resolve);
        }, seconds)
    );
}

async function delayTest() {
    console.log("Start");
    await delay(
        (...args) => {
            console.log("delay log", ...args);
        },
        1000,
        "aa",
        "bb",
        "cc",
        "dd"
    );
    console.log("stop");
}
delayTest();

sleep 即等待几秒后再执行下一个逻辑

delay 即几秒之后执行具体的方法,执行结束之后,再执行下一个逻辑

标签:resolve,console,log,args,js,delay,sleep
From: https://www.cnblogs.com/beileixinqing/p/16597265.html

相关文章

  • 手写实现 js 中的bind,并实现 softBind
    //bind会返回一个硬绑定的新函数,新函数会使用指定的第一个thisCtx去调用原始函数,并将其它参数传给原始函数。硬绑定会降低函数的灵活性,在绑定之后不能通过显式或硬绑定......
  • 817笔记(轮播图js)
    网页轮播图步骤:鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮点击右侧按钮一次,图片往左播放一次,以此类推,左侧按钮同理图片播放的同时,下面小圆圈模块跟随一起变化......
  • [js] uncaught exception: Error: listDatabases failed
    当mongo搭建的是replicaset集群。如果你登录某一台SECONDARY节点执行命令showdbs报错2022-08-16T15:20:00.606+0800EQUERY[js]uncaughtexception:Error:list......
  • Js的cookie和session
    Cookie的概念:保存在客户端一个字符串属性,读取cookie的值时,得到一个字符串;cookie除了name名和value值外,还有expires过期时间、path路径、domain域、以及secure安全。JS代码......
  • 16js运动
     运动概述运动主要是动画的操作,主要是操作某个document元素的属性变化(位置变化)运动主要的三步骤使用定时器来定时更改对应的内容实时获取对应的元素的属性及相关......
  • SpringMvc_06Jackson,Controller返回json数据
    初识json 通过json对象来实现,但是会有乱码问题  乱码问题可以通过Springmvc-servlet配置    同样的,可以通过RestController让其不仅过视图解析器,返回一个......
  • js一个快速提取所需字符串的方法
    varobj={"dependencies":{"axios":"^0.27.2","lodash":"^4.17.21","nanoid":"^4.0.0","normalize.css":"^8.0.1","pinia":"^2......
  • js判断移动端还是pc端
    functionisMobile(){letuserAgentInfo=navigator.userAgent;letAgents=['Android','iPhone','SymbianOS','WindowsPhone','iPad','iPod'];le......
  • MockJs
    MockJs一、为什么使用mockjs在做开发时,当后端的接口还未完成,前端为了不影响工作效率,手动模拟后端接口。1.我们可以使用json文件来模拟后台数据,但比较局限,无法模拟数据......
  • 学习Js-day18
    放大镜的简单实现效果图如下:对结构,布局,效果,进行分析“一、结构分析:1.一个小盒子box包着一个移动的盒子move,再连接一个大盒子bigbox展示图片的细节。二、布局分析:1.放小......