JavaScript教程-JavaScript sleep/wait
在JavaScript中,与其他编程语言不同,没有内置的sleep()函数。但我们可以使用一些方法来模拟JavaScript中的sleep()函数。JavaScript中的Promise和async/await函数等特性使得使用sleep()函数变得更加简单。
await用于等待一个Promise,并且只能在async函数中使用。JavaScript的行为是异步的,因此有一种称为Promise的概念来处理这种异步行为。由于这种异步行为,JavaScript在执行过程中会继续工作,不会等待任何事情。async/await函数帮助我们以同步的方式编写代码。
如何在JavaScript中使用sleep函数?
在实现JavaScript中的sleep函数之前,了解JavaScript代码的执行方式很重要。
JavaScript中sleep()的语法
sleep(delayTime in milliseconds).then(() => {
// 要执行的代码
})
可以与async/await一起使用sleep()函数以获取执行之间的暂停。以下是使用它的语法:
const func = async () => {
await sleep(delayTime in milliseconds);
// 要执行的代码
}
func();
以上是在JavaScript中实现sleep功能的方式。现在,让我们看看JavaScript中使用sleep()函数的示例。
示例1
在此示例中,我们使用async/await功能和sleep()函数。定义了一个名为fun()的函数,其中包含一些语句。首先,一旦启动函数,屏幕上就会显示文本"Hello World"。然后,由于sleep函数的存在,fun()会在2秒钟的时间内暂停。在给定时间段结束后,将在屏幕上显示文本"Welcome to the javaTiku.cn",并在循环的每次迭代中重复,直到循环终止。文本将在屏幕上重复10次,每次迭代都会暂停2秒钟。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Example of using sleep() in JavaScript</h1>
<script>
function sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
async function fun() {
document.write('Hello World');
for (let i = 1; i <= 10 ; i++) {
await sleep(2000);
document.write(i + " " + "Welcome to the javaTiku.cn" + "<br>");
}
}
fun();
</script>
</body>
</html>
输出
执行上述代码后,输出将如下所示:
两秒后,输出将更改。
循环将在每次迭代时暂停2秒钟,重复10次。
示例2
在此示例中,我们使用setTimeout()函数创建一个Promise。setTimeout()函数在指定的时间后执行代码。我们还使用then()方法,在Promise完成后执行所需的函数。
首先,在屏幕上显示一些语句。然后,在2秒的延迟之后,将在屏幕上显示文本"End"。
这种方法更适合延迟函数。由于使用了Promise,因此它在ES6中支持。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Example of using sleep() in JavaScript</h1>
<p>There is a sleep of 2000 milliseconds</p>
<script>
let sleep = ms => {
return new Promise(resolve => setTimeout(resolve, ms));
};
document.write("Begin" + "<br>");
document.write("Welcome to the javaTiku.cn" + "<br>");
sleep(2000).then(() => {
document.write("End");
});
</script>
</body>
</html>
输出
在2秒的延迟之后,输出将如下所示: