Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js 轮询

作者:屰兲洏垳&   发布日期:2025-05-16   浏览:98

// 使用 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();

解释说明:

  1. setInterval:这是一个 JavaScript 内置函数,用于每隔指定的时间间隔执行一次给定的函数。在这个例子中,我们使用 setInterval 每隔 2 秒调用一次 checkStatus 函数。

  2. checkStatus 函数:这个函数模拟了一个轮询任务,它会发送一个 HTTP 请求(通过 fetch)来检查某个 API 的状态。如果返回的状态表明任务已完成(例如 data.status === "complete"),则清除定时器并停止轮询。

  3. clearInterval:当满足特定条件时(例如任务完成),可以调用 clearInterval 来停止轮询,避免不必要的请求。

  4. 启动第一次轮询:由于 setInterval 是从设定的时间间隔后才开始第一次执行,因此我们在设置 setInterval 之后立即调用了一次 checkStatus,以确保第一次检查不会等待 2 秒。

上一篇:js for await

下一篇:js async

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组复制

js 复制数组

js 数组拷贝

js 对象转数组

js 深拷贝数组

js 获取今天年月日

js jsonp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站