我目前只有一个javascript函数 - 简单来说它可以执行3个任务:
任务A. 任务B. 任务C
这三项任务本身可以重复使用,所以我的想法是将功能分开:
$(".sel").click(function (e) {
functionA(e);
functionB(e);
functionC(e);
});
然而,main函数包含一个setTimeout函数,该函数在其他所有内容完成后重定向链接之前暂停click事件(只有半秒延迟)。我的问题是,如果我将这个代码抽象出来并将其放入函数A中,那么在等待结束之前是否会停止运行functionB,或者B和C是否会直接运行?
提前致谢。
答案 0 :(得分:0)
在javascript中没有'忙等待',执行将在setTimeout调用后继续,并且函数B和C将按顺序运行(假设您的函数A是您提到的主函数)。当他们完成操作和超时时,执行将跳转到您从函数A发送的延迟函数。
有关这些一般概念的说明,请参阅此JN的concurrency model and event loop.
上的MDN文章