首页 > 解决方案 > javascript在前6秒每3秒设置一次间隔时间,然后连续5秒直到我收到答案

问题描述

我想在前 6 秒内每 3 秒 ping 一次服务器以获取响应,之后我想将间隔时间增加到 5 秒,直到我得到响应。我做了第一部分,我正在尝试解决接下来的 5 秒 ping

var firstPing = 3000,
    pingStop = 6000,
    pingForever = 5000;
var ping = setInterval(function() { execute() }, firstPing);

setTimeout(function() {clearInterval(ping)}, pingStop);

setInterval(function() {execute()}, pingForever);

function execute() {
    console.log('hello: ' + new Date().getSeconds());
  // After successful response, clearInterval();

}

标签: javascript

解决方案


每 1 秒调用一次 execute() 并且仅在递增计数器变量为某个值时才执行某些操作会更简单吗?

var ping = setInterval(function() { execute() }, 1000);

let v = 0;
function execute() {
  v++;
  if(v==3 || v==6 || (v>6 && v%5 == 1))
    console.log('hello: ' + new Date().getSeconds());
  // After successful response, clearInterval();

`


推荐阅读