下面是JavaScript模拟sleep的两种实现方式的详细攻略。
下面是JavaScript模拟sleep的两种实现方式的详细攻略。
方式一:使用Promise对象
- 定义async函数:
async function sleep(duration) {
return new Promise(resolve => setTimeout(resolve, duration))
}
- 将需要延迟执行的代码放在async函数中:
async function doSomething() {
console.log('start to do something...')
await sleep(2000)
console.log('after sleep 2 seconds...')
}
在上述代码中,doSomething
函数包含一个需要延迟执行2秒的代码,await sleep(2000)
代码使用await
关键字调用Promise对象的resolve
函数来模拟实现sleep。
- 调用async函数:
doSomething()
运行上述代码,可以看到控制台输出:
方式二:使用setTimeout函数进行递归调用
- 定义sleep函数:
function sleep(timeout) {
return new Promise(resolve => {
setTimeout(resolve, timeout);
})
}
- 定义延迟执行的代码块:
function doSomething() {
console.log('start to do something...')
sleep(2000).then(() => {
console.log('after sleep 2 seconds...')
});
}
这里也是需要延迟执行的代码块,其中调用了sleep
函数来实现sleep操作。
- 调用执行代码块的函数:
doSomething();
运行上述代码,可以看到控制台输出:
总结:
以上便是两种JavaScript模拟sleep的方式。使用Promise对象可以简化代码结构,避免了回调函数嵌套;而通过setTimeout递归调用实现的方式,则更为适用于一些特殊情况,例如需要实现循环执行某个代码块并且需要sleep功能的操作。
沃梦达教程
本文标题为:javascript里模拟sleep(两种实现方式)


基础教程推荐
猜你喜欢
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件 2023-10-29
- Bootstrap学习笔记之css组件(3) 2024-01-22
- 纯css实现漂亮又健壮的tooltip的方法 2024-01-23
- Loaders.css免费开源加载动画框架介绍 2025-01-23
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析 2024-01-08
- Django操作cookie的实现 2024-04-15
- html5视频如何嵌入到网页(视频代码) 2025-01-22
- 创建Vue3.0需要安装哪些脚手架 2025-01-16
- js判断一个对象是否在一个对象数组中(场景分析) 2022-10-21
- JSONObject与JSONArray使用方法解析 2024-02-07