javascript - 最后一行不等到长时间运行循环结束

标签 javascript jquery

在我下面的 jQuery 代码中,我想显示一个微调器直到 for 循环完成 但是由于 javascript 的异步特性,它会在 for 循环结束之前执行最后一行并隐藏微调器。

jQuery 中有类似 callback() 的东西吗?谢谢

$('#ajaxSpinnerImage').hide();

$('#bulkUploadButton').on('click',function(){
    $('#ajaxSpinnerImage').show();

    for(var i=0; i < casNumbersArray.length; i++) {
        // Long running operation
    }

    $('#ajaxSpinnerImage').hide(); // How to wait till forloop ends?
});

更新:-

for 循环中不涉及 API。只是一个本地数组迭代,可能需要更长的时间。这是带有 jQ​​uery 的普通 JS

最佳答案

通常您应该使用 WebWorkers,但以下内容可能会有所帮助:

$('#ajaxSpinnerImage').hide();

$('#bulkUploadButton').on('click',function(){
    $('#ajaxSpinnerImage').show();

    setTimeout(work, 1);

    function work() {
        for(var i=0; i < casNumbersArray.length; i++) {
            // Long running operation
        }
        $('#ajaxSpinnerImage').hide();
    }
});

尝试将您的 for 循环分成几部分。否则,我认为您的 UI 可能在此 for 循环期间没有响应。

关于javascript - 最后一行不等到长时间运行循环结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57429503/

相关文章:

javascript - 在 Javascript 中打印时仅显示打印对话框

javascript - 无法将类添加到 $(this) 的下一个元素

javascript - 为表单字段添加后缀

javascript - 解决javascript中天真的字符串搜索问题的优化方法?

javascript - 使用 Jquery,如何使用从 url 返回的竞赛更新 HTML 表的一行?

javascript - 捕获单键输入事件Jquery

jquery - 如何使用选择器检查所有以相似id开头的元素是否隐藏在Jquery中?

php - 复选框数据在单击时动态保存到数据库

Javascript旋转-如何逆时针旋转?

javascript - IE9 中的 D3 : "Invalid argument" error using d3. js