我看过很多异步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/