相关疑难解决方法(0)

在JavaScript中停止setInterval调用

我用setInterval(fname, 10000);JavaScript在JavaScript中每10秒调用一次函数.是否有可能在某些事件上停止调用它?

我希望用户能够停止重复刷新数据.

javascript setinterval

1332
推荐指数
9
解决办法
90万
查看次数

连续每5秒调用一次javascript函数

可能重复:
每60秒调用一次函数

每隔5秒连续调用一次javascript函数.我见过setTimeOut事件.如果我想连续不断,它会正常工作吗?

javascript dom-events

91
推荐指数
5
解决办法
21万
查看次数

rxjs使用可变响应时间定期轮询端点

我希望轮询端点的速度不会超过每秒一次,并且不会慢于轮询端点所需的时间.永远不应该有多个未完成的请求.

我想要一种反应式编程方式每秒至少轮询一次端点,但如果端点花费的时间超过1秒,则下一个请求会立即触发.

在下面的大理石图中,第2次和第3次请求的时间超过1秒,但第4次和第5次请求更快完成.下一个请求在1秒边界上触发,或者在从最后一个未完成请求获取数据后立即触发.

s---s---s---s---s---s---| # 1 second interval observable
r---r----r--------r-r---| # endpoint begin polling events
-d-------d--------dd-d--| # endpoint data response events
Run Code Online (Sandbox Code Playgroud)

我试图在大理石图中使术语正确,所以我假设端点请求的开头应该是大理石我标记为"r",而标记为"d"的大理石事件具有端点数据.

这是我用普通的js做了多少代码.但是,根据我上面的要求,随后的请求不会立即触发.

    var poll;
    var previousData;
    var isPolling = false;
    var dashboardUrl = 'gui/metrics/dashboard';
    var intervalMs = updateServiceConfig.getIntervalInMilliSecondForCharts();

    return {
        startInterval: startInterval,
        stopInterval: stopInterval
    };

    function startInterval() {
        stopInterval();
        tryPolling(); // immediately hit the dashboard
        // attempt polling at the interval
        poll = $interval(tryPolling, intervalMs);
    }

    /**
     * attempt polling as long as there is no in-flight request
     * …
Run Code Online (Sandbox Code Playgroud)

observable rxjs

6
推荐指数
1
解决办法
1795
查看次数

标签 统计

javascript ×2

dom-events ×1

observable ×1

rxjs ×1

setinterval ×1