Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等到gobalEval完成_Javascript_Jquery - Fatal编程技术网

Javascript 等到gobalEval完成

Javascript 等到gobalEval完成,javascript,jquery,Javascript,Jquery,我需要在以下操作完成后执行回调: jQuery.globalEval(myUnknownContent); 但是,myUnknownContent中可能有一些Ajax调用。到目前为止,我使用的是100毫秒的超时,但这不是一个优雅可靠的解决方案 谢谢你的帮助 为此,您可以使用和: var onCompletion = function(){ // put here the stuff you want done after all unknown content } var ajaxSe

我需要在以下操作完成后执行回调:

jQuery.globalEval(myUnknownContent);
但是,
myUnknownContent
中可能有一些Ajax调用。到目前为止,我使用的是100毫秒的超时,但这不是一个优雅可靠的解决方案

谢谢你的帮助

为此,您可以使用和:

var onCompletion = function(){
    // put here the stuff you want done after all unknown content
}
var ajaxSent = false;
jQuery(document).ajaxSend(function(){ ajaxSent = true });
jQuery.globalEval(myUnknownContent);
if (ajaxSent) {
    jQuery(document).ajaxStop(onCompletion);
} else {
    onCompletion(); // use setTimeout(onCompletion,0) if you want it asynchronous
}

OP注意:如上所述,如果没有ajax调用,
onCompletion
将同步调用,如果有ajax调用,则异步调用。@T.J.Crowder您认为这可能是个问题吗?完全取决于OP的用例。如果它是一个通用函数(比如promise的
然后
),我肯定会说它是,因为它会导致一个混乱的结果(事实上,这是jQuery的promises内容的缺陷之一;幸运的是,ES6在这方面做得很好)。但如果它不是一个通用函数,而只是在一个地方编写代码,那么它就不重要了。@Girish它会等待所有挂起的ajax请求完成