我想连续调用javascript函数,直到条件满足为止。我有一个休息服务,给我一个百分比。 我希望我的javascript不断调用此REST服务,直到我得到百分比为100%。当它达到100%时它应该停止。
总体结构如下 1)我有一个表格,其中有一个显示进度的单元格。
Packets percent
abc 10%
efs 13%
因此,当这个表加载时,调用将转到javascript中存在的函数,该函数将调用其余服务,并且应该连续调用此函数,直到百分比为100%。
我应该使用递归调用吗?并且功能内部功能可能吗?
答案 0 :(得分:1)
如果服务器的响应为0
到100
,则可以尝试使用.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)
})
答案 1 :(得分:1)
此函数调用condFunc,当满足条件时,该函数应返回true。当发生这种情况时,会调用readyFunc。 checkInterval以毫秒为单位设置检查率
apply
用法:
var wait = function(condFunc, readyFunc, checkInterval) {
var checkFunc = function() {
if(condFunc()) {
readyFunc();
}
else
{
setTimeout(checkFunc, checkInterval);
}
};
checkFunc();
};
在当前时间为分钟后10秒时打印“完成”