Javascript 在API完全加载之前或之后调用函数
我有一个按钮,如果单击它,我需要调用一个函数,该函数隐藏由异步加载的js文件初始化的另一个元素。但是,我可以隐藏元素的唯一方法是通过JavaCScript API。没有为通过API创建的iframe分配ID或类,因此我不得不为该脚本使用JSAPI 单击我的按钮时,我执行以下代码:Javascript 在API完全加载之前或之后调用函数,javascript,Javascript,我有一个按钮,如果单击它,我需要调用一个函数,该函数隐藏由异步加载的js文件初始化的另一个元素。但是,我可以隐藏元素的唯一方法是通过JavaCScript API。没有为通过API创建的iframe分配ID或类,因此我不得不为该脚本使用JSAPI 单击我的按钮时,我执行以下代码: if(typeof Tawk_API.hideWidget === "function"){ Tawk_API.hideWidget(); }else{ Tawk_API.onLoad =
if(typeof Tawk_API.hideWidget === "function"){
Tawk_API.hideWidget();
}else{
Tawk_API.onLoad = function(){
Tawk_API.hideWidget();
};
}
如果小部件已经加载,此函数将成功隐藏该小部件;如果尚未加载,则添加一个onLoad
我知道JavaScript不是多线程的,但是有没有一个原因,处理器可能会把主线程交给我的函数中间加载AcYNC JS文件,这可能会导致我的条件失败吗?我想确保在我的函数执行
else
时,不会加载js
文件,这将阻止我的脚本正确隐藏小部件。您可以确保此代码是正确的
了解有关JavaScript的更多信息您可以确保此代码是正确的
了解有关JavaScript的更多信息JavaScript引擎将以阻塞方式执行所有同步代码,直到达到异步操作(I/O、网络调用等)。然后在启动这个异步操作之后,它将返回执行更多同步代码。如果异步操作在同步代码期间完成,则只有在完全执行阻塞部分时才会调用回调
因此,您的代码是安全的:)Javascript引擎将以阻塞方式执行所有同步代码,直到它达到异步操作(I/O、网络调用等)。然后在启动这个异步操作之后,它将返回执行更多同步代码。如果异步操作在同步代码期间完成,则只有在完全执行阻塞部分时才会调用回调
因此,您的代码是安全的:)
JavaScript不是多线程的
,处理器移交主线程
不能同时为真。执行流不只是随机地向前或向后跳跃。JavaScript不是多线程的
,处理器移交主线程
不可能都是真的。执行流程不仅仅是随机向前或向后跳跃。