Javascript setTimeOut - 在嵌套函数中它是异步的吗?

时间:2015-05-12 12:27:36

标签: javascript

我目前只有一个javascript函数 - 简单来说它可以执行3个任务:

任务A. 任务B. 任务C

这三项任务本身可以重复使用,所以我的想法是将功能分开:

$(".sel").click(function (e) {

    functionA(e);
    functionB(e);
    functionC(e);
});

然而,main函数包含一个setTimeout函数,该函数在其他所有内容完成后重定向链接之前暂停click事件(只有半秒延迟)。我的问题是,如果我将这个代码抽象出来并将其放入函数A中,那么在等待结束之前是否会停止运行functionB,或者B和C是否会直接运行?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在javascript中没有'忙等待',执行将在setTimeout调用后继续,并且函数B和C将按顺序运行(假设您的函数A是您提到的主函数)。当他们完成操作超时时,执行将跳转到您从函数A发送的延迟函数。

有关这些一般概念的说明,请参阅此JN的concurrency model and event loop.

上的MDN文章