js 实现sleep函数

js 实现sleep函数sleep 函数作用是让线程休眠 等到指定时间在重新唤起 方法一 这种实现方式是利用一个伪死循环阻塞主线程 因为 JS 是单线程的 所以通过这种方式可以实现真正意义上的 sleep functionslee delay varstart newDate getTime while newDate getTime start

function sleep(delay) { var start = (new Date()).getTime(); while ((new Date()).getTime() - start < delay) { continue; } } function test() { console.log('111'); sleep(2000); console.log('222'); } test() 

方法二:定时器

function sleep1(ms, callback) { setTimeout(callback, ms) } //sleep 1s sleep1(1000, () => { console.log(1000) }) 

方法三:es6异步处理

const sleep = time => { return new Promise(resolve => setTimeout(resolve,time) ) } sleep(1000).then(()=>{ console.log(1) }) 

方法四:yield后面是一个生成器 generator

function sleepGenerator(time) { yield new Promise(function(resolve,reject){ setTimeout(resolve,time); }) } sleepGenerator(1000).next().value.then(()=>{console.log(1)}) 

方法五:es7---- async/await是基于Promise的,是进一步的一种优化

function sleep(time) { return new Promise(resolve => setTimeout(resolve,time) ) } async function output() { let out = await sleep(1000); console.log(1); return out; } output(); 

注意点:

参考文献:Javascript中的async await

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205839.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午5:04
下一篇 2026年3月19日 下午5:04


相关推荐

  • html5游戏网页代码大全,HTML网页代码大全

    html5游戏网页代码大全,HTML网页代码大全1 贴图 2 加入连接 写上你想写的字 1 贴图 2 加入连接 写上你想写的字 3 在新窗口打开连接 写上要写的字消除连接的下划线在新窗口打开连接 写上你想写的字 4 移动字体 走马灯 写上你想写的字 5 字体加粗 写上你想写的字 6 字体斜体 写上你想写的字 7 字体下划线 写上你想写的字 8 字体删除线 写上你想写的字 9 字体加大 写上你想写的字 10 字体控制大小 写上你想写的字 其中字体大小可从

    2026年3月16日
    2
  • sinc函数的积分

    sinc函数的积分求 sinc 函数的积分 I sin x xdxI int infty infty frac sin x x dxI xsin x dx 解法如下 易知有 0 e xtdt 1x 易知有 int 0 infty e xt dt frac 1 x 易知有 0 e xtdt x1 I sin x xdx 2

    2026年3月19日
    2
  • 2025最全Cline+Claude 3.5 Sonnet集成指南:打造最强AI编程助手【实战教程】

    2025最全Cline+Claude 3.5 Sonnet集成指南:打造最强AI编程助手【实战教程】

    2026年3月16日
    3
  • 预处理指令define和undef

    预处理指令define和undefdefine 是由预处理器进行处理的 预处理指令以 号开头以区分其它语句 因只有一行末尾不需要以 分号结束 definePRICE3 2intmain intnum 100 floattotal PRICE num 预处理后将替换为 floattotal 3 2 num return0 其形式为 define 宏替换体宏函数一 替换体前带 号 号将会以双引号把替

    2026年3月19日
    2
  • ui ue设计是什么_ui设计师

    ui ue设计是什么_ui设计师设计在我们的生活中扮演着重要的角色,但是面对越来越多的专业术语和相近的岗位职责,人们总是困惑:明明是差不多的岗位,为什么要整那么多的词。UI、UE、UID、UED相信很多人都弄不清楚这些名字是什么意思,到底有什么区别。其实,在它们神似的外表下,潜藏着巨大的差异。本文,就来详细说说UI设计和UE设计这是两种概念,以及如何将它们区分开来。一、UI、UE的定义1、UI:UserInterface…

    2022年4月19日
    81
  • Object 转 List 工具类

    Object 转 List 工具类publicstatic T List T castList Objectobj Class T clazz List T result newArrayList T if objinstanceo for Objecto List obj r T T T T T

    2026年3月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号