在 JavaScript 中,異步編程是一種處理可能需要一定時間才能完成的任務(wù)的方法,而不會阻塞其他代碼的執(zhí)行。任務(wù)調(diào)度是指在一定的時間間隔或滿足某個條件時執(zhí)行某個任務(wù)。您可以使用 setTimeout、setInterval 和 Promise 等方法實現(xiàn) JavaScript 異步編程和任務(wù)調(diào)度。
setTimeout 是 JavaScript 中最基本的方法之一,用于在指定的延遲(以毫秒為單位)后執(zhí)行一個函數(shù)。
示例:
function task() {
console.log('Task executed');
}
setTimeout(task, 3000); // 在 3 秒后執(zhí)行 task 函數(shù)
console.log('Other tasks...');
setInterval 方法類似于 setTimeout,不同之處在于它會按照指定的時間間隔重復(fù)執(zhí)行一個函數(shù)。
示例:
function task() {
console.log('Task executed');
}
const interval = setInterval(task, 3000); // 每隔 3 秒執(zhí)行一次 task 函數(shù)
// 在某個條件滿足時取消調(diào)度
// clearInterval(interval);
Promise 是一種更高級的異步編程方法,可以用于處理更復(fù)雜的異步操作。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();
這些方法可以根據(jù)您的需求進行組合和擴展,以實現(xiàn)更復(fù)雜的任務(wù)調(diào)度。