// 使用 setInterval 实现简单的轮询功能
// 定义一个函数,模拟轮询任务
function checkStatus() {
console.log("正在检查状态...");
// 模拟异步操作,比如 AJAX 请求
fetch('/api/status')
.then(response => response.json())
.then(data => {
console.log("收到响应:", data);
// 如果条件满足,停止轮询
if (data.status === "complete") {
clearInterval(intervalId); // 停止轮询
console.log("任务完成!");
}
})
.catch(error => {
console.error("请求失败:", error);
});
}
// 设置轮询间隔时间(例如每2秒检查一次)
const intervalId = setInterval(checkStatus, 2000);
// 启动第一次轮询
checkStatus();
setInterval
:这是一个 JavaScript 内置函数,用于每隔指定的时间间隔执行一次给定的函数。在这个例子中,我们使用 setInterval
每隔 2 秒调用一次 checkStatus
函数。
checkStatus
函数:这个函数模拟了一个轮询任务,它会发送一个 HTTP 请求(通过 fetch
)来检查某个 API 的状态。如果返回的状态表明任务已完成(例如 data.status === "complete"
),则清除定时器并停止轮询。
clearInterval
:当满足特定条件时(例如任务完成),可以调用 clearInterval
来停止轮询,避免不必要的请求。
启动第一次轮询:由于 setInterval
是从设定的时间间隔后才开始第一次执行,因此我们在设置 setInterval
之后立即调用了一次 checkStatus
,以确保第一次检查不会等待 2 秒。
上一篇:js for await
下一篇:js async
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站