【问题标题】:Make sure loop is fully executed before running other code in jQuery确保在 jQuery 中运行其他代码之前完全执行循环
【发布时间】:2016-03-23 20:11:13
【问题描述】:

我有一个问题,即在循环结束之前函数不断被调用。如何防止在循环完成之前调用该函数?我的循环将 HTML 表格输出到页面,然后由我的sortResultsByDate 执行,但在呈现 HTML 之前不会发生这种情况。目前我的第二个函数在第一个函数完成之前触发。

ns.executeUserSearch = function() {
    jQuery.each(searchInputArray, function(index, value) {
        ns.getUserSearchResults(searchInputArray, index);
    });

    ns.sortResultsByDate();
};

【问题讨论】:

  • 你想实现递归吗?
  • 这应该可以正常工作。但是,您的 getUserSearchResults 是否进行了 ajax 调用以获得结果?在这种情况下,它不起作用。也正如 Technoh 所说,你的意思是自己打电话给 getUserSearchResults 吗?
  • 试试 jQuery deferred:api.jquery.com/jquery.deferred
  • 是的@Rhumborl,我正在进行 AJAX 调用。
  • 抱歉,打错了,我已经更新了我的代码。

标签: javascript jquery


【解决方案1】:

您似乎在jQuery.each 循环内递归调用ns.getUserSearchResultsns.sortResultsByDate() 每次调用都会执行一次,因此在完成所有递归调用之前,您最终会执行多次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2021-08-06
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    相关资源
    最近更新 更多