在 JavaScript 中,异步编程是一种处理可能需要一定时间才能完成的任务的方法,而不会阻塞其他代码的执行。任务调度是指在一定的时间间隔或满足某个条件时执行某个任务。您可以使用 setTimeout、setInterval 和 Promise 等方法实现 JavaScript 异步编程和任务调度。
setTimeout 是 JavaScript 中最基本的方法之一,用于在指定的延迟(以毫秒为单位)后执行一个函数。
示例:
function task() {
console.log('Task executed');
}
setTimeout(task, 3000); // 在 3 秒后执行 task 函数
console.log('Other tasks...');
setInterval 方法类似于 setTimeout,不同之处在于它会按照指定的时间间隔重复执行一个函数。
示例:
function task() {
console.log('Task executed');
}
const interval = setInterval(task, 3000); // 每隔 3 秒执行一次 task 函数
// 在某个条件满足时取消调度
// clearInterval(interval);
Promise 是一种更高级的异步编程方法,可以用于处理更复杂的异步操作。async/await 是基于 Promise 的语法糖,使得异步代码更像同步代码。
示例:
function delay(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function taskScheduler() {
console.log('Task 1 started');
await delay(3000);
console.log('Task 1 completed');
console.log('Task 2 started');
await delay(1000);
console.log('Task 2 completed');
}
taskScheduler();
这些方法可以根据您的需求进行组合和扩展,以实现更复杂的任务调度。