📅  最后修改于: 2023-12-03 15:27:25.161000             🧑  作者: Mango
在编写 JavaScript 应用程序时,可能需要在代码的某些部分停止一段时间,直到某些条件满足,或者直接等待一段时间。本文将讨论在 JavaScript 中等待时间的各种方法。
JavaScript 提供了 setTimeout
方法,允许我们按照指定的时间(以毫秒为单位)延迟执行一段代码。以下是一个示例,该示例一秒钟后将输出 "Hello, world!"。
setTimeout(function() {
console.log("Hello, world!");
}, 1000);
setTimeout
方法的第一个参数是一个回调函数,将在指定的时间后执行。第二个参数是等待时间,以毫秒为单位。
在上述示例中,我们使用了匿名函数作为回调。我们还可以使用已命名的函数:
function myFunction() {
console.log("Hello, world!");
}
setTimeout(myFunction, 1000);
setTimeout
方法返回一个超时 ID,可以使用该 ID 取消等待。以下是一个示例,该示例将取消等待并永远不输出 "Hello, world!"。
var timeoutId = setTimeout(function() {
console.log("Hello, world!");
}, 1000);
clearTimeout(timeoutId);
clearTimeout
方法接收一个超时 ID 作为参数,该 ID 将取消等待时返回的 ID。
如果我们希望等待 Promise 解决,可以使用 async/await 语法。以下是一个示例,该示例将等待 1 秒钟,然后输出 "Hello, world!"。在等待期间,JavaScript 将继续执行其他代码。
async function myFunction() {
await new Promise(resolve => setTimeout(resolve, 1000));
console.log("Hello, world!");
}
myFunction();
在上述示例中,我们使用 await
等待一个 promise,该 promise 会在等待时解决。我们使用 setTimeout
返回一个 promise,在 1 秒钟后解决该 promise。
在 JavaScript 中等待时间的方法有很多,包括 setTimeout
和 async/await
。在使用这些方法时,请注意避免阻塞代码或长时间等待,否则可能会对应用程序的性能产生不利影响。