JavaScript 异步功能

标签 javascript jquery

我看过很多异步javascript的函数示例,包括setTimeout、AJAX调用等。

显然,这些都有一定的延迟,这意味着脚本的流程会受到影响。但我想知道,如果我有这样的东西怎么办:

function init() {
    this.initSlider();
    this.testLog();
}

function initSlider() {
    // find multiple items and build up a slider instance 
    // for each of these elements.
}

function testLog() {
    console.log('test);
}

如果 initSlider 可能需要很长时间,它会先运行我的 testLog 函数吗?

我目前对此有点不确定。我知道可能有很多关于 javascript 流程的例子,但我找不到一个简单的函数会花费更长的时间来运行的例子。

最佳答案

这完全取决于 initSlider() 中的内容。虽然 initslider() 是重函数并且不包含任何异步语句 然后 testLog() 不会先执行。

Javascript 将所有语句存储在调用堆栈中,它们将一个接一个地执行。

如果有异步语句,那么它将从调用堆栈中删除该语句,并且有机会执行您的 testLog()。

所以对于你的问题,我的答案将取决于 initSlider() 中的代码

关于JavaScript 异步功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38951514/

相关文章:

javascript - 如何将javascript注入(inject)到uiwebview中

javascript - 番茄钟给出负值

javascript - 允许用户向您的站点添加自己的 JavaScript 的安全问题?

javascript - 我们怎样才能得到两个递归调用的最小值,一个是加法,另一个是减法?

javascript - Typescript 声明已定义字符串或任何字符串的类型

java - 调用java类时字符被替换

php - index.php 中的多个 jquery 对话框

JavaScript 抛出 "is undefined"错误

javascript - 保持div之间的悬停状态处于事件状态

javascript - 循环密码程序