Javascript 暂停代码执行:中断、睡眠和异步编程323


在 JavaScript 中,有时需要暂停代码执行以等待异步任务完成或需要根据特定时间或事件触发代码。本文将介绍在 JavaScript 中暂停代码执行的三种主要方法:中断、睡眠和异步编程。

中断

中断可以让代码在遇到特定事件时立即停止执行。JavaScript 提供了 `setTimeout()` 和 `setInterval()` 方法来调度事件。我们可以使用这些方法在指定的时间间隔后运行代码,有效地暂停代码执行直到事件触发。setTimeout(() => {
// 延迟 5 秒后执行代码
}, 5000);
setInterval(() => {
// 每 1 秒执行一次代码
}, 1000);
复制代码

睡眠

睡眠方法直接暂停代码执行一段时间。然而,原生 JavaScript 没有提供内置的睡眠函数。为了实现睡眠,我们可以使用以下技巧:

1. 轮询


while (true) {
// 持续轮询,直到耗尽时间
}
复制代码

2. 原生 Promise 和 setTimeout()


().then(() => {
// 延迟 1 秒后执行代码
setTimeout(() => {}, 1000);
});
复制代码

3. 第三方库:如 delay()


import { delay } from 'delay';
delay(1000).then(() => {
// 延迟 1 秒后执行代码
});
复制代码

异步编程

异步编程是让代码在主执行流之外执行的编程范例。它允许代码继续执行,而不会阻塞等待异步任务完成。JavaScript 中的异步编程主要通过以下方法实现:

1. 回调函数


setTimeout(() => {
// 延迟 5 秒后执行代码
}, 5000, callback);
复制代码

2. Promise


const promise = new Promise((resolve, reject) => {
// 异步任务
});
(() => {
// 任务完成后执行代码
});
复制代码

3. Async/await


async function myFunction() {
await new Promise((resolve, reject) => {
// 异步任务
});
// 任务完成后执行代码
}
复制代码

JavaScript 提供了多种暂停代码执行的方法,包括中断、睡眠和异步编程。理解这些方法的差异和优点至关重要,以有效地管理异步代码并创建响应式应用。中断允许在特定事件发生时执行代码,而睡眠可以让代码在指定的时间段内暂停执行。另一方面,异步编程通过将执行分离到主执行流之外,从而实现非阻塞代码。

2025-01-13


上一篇:如何禁用 JavaScript 及其影响

下一篇:JavaScript 面试:准备指南和常见问题