在我下面的 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。只是一个本地数组迭代,可能需要更长的时间。这是带有 jQuery 的普通 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/