javascript - 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();
}
解决方案
每 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();
`
推荐阅读
- java - 如何为ehcache初始化对象列表<>?
- python - 如何解决熊猫中多列的断言错误
- size - ValueError: 目标尺寸 (torch.Size([16])) 必须与输入尺寸 (torch.Size([16, 1])) 相同
- javascript - 使用 *ngFor 遍历集合的子范围?
- r - 如何使用 readr 的 read_delim_chunked 来使用 col_types?
- react-native - RxJS 不能抛出一个对象
- python - Docx 不会替换从 pandas 中提取的文本
- swift - 在子视图中更新 ObservableObject 的 @Published 变量
- python - 使用 OpenCV 将 RGB 图像转换为灰度图像时,为什么会得到绿色图像?
- sql - 将表从 Oracle 迁移到 SQL Server