javascript - 从 setInterval 函数获取返回值

标签 javascript

我有一个 ajax 函数,它被调用并返回 json 数据。此函数通过 setInterval 循环调用:

    function SetMaxBidReload() {
        var reloadInt = 6000;
        var doReload = true;

        //set some logic here

        if (doReload) {
            setInterval(function () { ReloadMaxBid(); }, reloadInt);
        }
    }

    function ReloadMaxBid() {
        var nextReload;
        $.ajax({
            url: 'ajaxcall.aspx',
            cache: false,
            success: function (data) {
                //change to dom elemants here based on return data
                nextReload = data[0].NextReload;
            }
        });
        return nextReload;

    }

我想做的是根据 ajax 调用返回的内容更改 setInterval 的 reloadInt。

a:这可能吗 b:我该怎么做?

我愿意接受关于如何通过不同的编码来实现这一点的建议

最佳答案

setInterval 接受一次超时参数,然后根据该间隔执行函数,更改 reloadInt 不会有任何影响。

你需要在成功回调中使用setTimeout:

function ReloadMaxBid() {
    $.ajax({
        url: 'ajaxcall.aspx',
        cache: false,
        success: function (data) {
            //change to dom elemants here based on return data

            var next = data[0].NextReload;
            if (next !== -1) {
                setTimeout(function(){ReloadMaxBid();}, next);
            }
        }
    });
}

您还需要在某处使用值为 6000setTimeout 来开始。

关于javascript - 从 setInterval 函数获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281373/

相关文章:

javascript - jQuery 下拉切换菜单无法正常工作!请插件帮助?

c# - 从 ASP.Net MVC 4 中的 Kendo UI MultiSelect 获取 PrimaryId

javascript - 在 AngularJS 中排序并创建新数组

javascript - 单击以使用 Jquery 和 ajax 显示详细信息

javascript - 无法通过 TLS 连接到 Websocket 服务器

javascript - JQuery 在添加另一个类后添加类并且可见

javascript - 使用正则表达式查找和替换

javascript - 如何在 drop 函数中跟踪可拖动 div id 的 id

javascript - 两个下拉列表并用PHP保存在数据库中

javascript - 自定义 Facebook 登录按钮 *使用 JSSDK 而不是 FBML*