连续调用 javascript 函数,直到条件

Call a javascript function continuously until condition

本文关键字:条件 函数 调用 javascript 连续      更新时间:2023-09-26

我想连续调用一个javascript函数,直到满足条件。我有一个休息服务,它向我发送一个百分比。我希望我的 javascript 连续调用这个 REST 服务,直到我得到 100% 的百分比。当它达到 100% 时,它应该停止。

整体结构如下1)我有一个表格,其中有一个显示进度的单元格。

 Packets                 percent    
 abc                       10%
 efs                       13%

因此,当这个表加载时,调用将转到javascript中存在的函数,该函数将调用其余服务,并且应该连续调用该函数,直到百分比为100%。

我应该使用递归调用吗?函数内部的函数可能吗?

此函数调用 condFunc,当满足条件时应返回 true。当这种情况发生时,readyFunc 被调用。检查间隔设置检查速率(以毫秒为单位)

       var wait = function(condFunc, readyFunc, checkInterval) {
            var checkFunc = function() {
                if(condFunc()) {
                    readyFunc(); 
                }
                else
                {
                    setTimeout(checkFunc, checkInterval);
                }
            };
            checkFunc();
        };

用法:

       wait(
            function() { return new Date().getSeconds() == 10; }, 
            function() { console.log("Done"); },
            100
        );

当当前时间为分钟后 10 秒时打印"完成"

如果来自服务器的响应是通过100 0,可以尝试使用.each().load()$.get()

function progress() {
  el = this;
  $.get("/path/to/rest/call", function(data) {
    el.textContent = data + "%";
    // define conditions for next request
    if (data < 100 /* conditions */) {
      progress.call(el)
    }
  })
}
$("table tr").each(function() {
  progress.call(this)
})