我有以下JS代码:javascript函数是同步还是异步?
<script>
first();
second();
</script>
我想确保second()
会的first()
完全执行后运行。这是预期的默认行为?
我有以下JS代码:javascript函数是同步还是异步?
<script>
first();
second();
</script>
我想确保second()
会的first()
完全执行后运行。这是预期的默认行为?
这取决于你有你的里面和first()
功能second()
什么..如果你有一些异步调用,first()
可以second()
后结束。
例如
function first(){
console.log("I'm first");
}
function second(){
console.log("I'm second");
}
first();
second();
将打印
我第一
我第二
现在假设你在你的first()
函数调用Ajax需要10秒才能结束:
function first(){
$.ajax({
//--- blah blah
success: function(){
//--- success runs after 10 seconds
console.log("I'm first");
}
})
}
如果您运行
first();
second();
你将打印
我第二
我第一
Here你可以找到另一为例e
现在很清楚..非常感谢:)是的,我有AJAX调用。所以我应该运行第二个函数作为第一个响应:) – 2014-10-28 12:16:15
是的,它是预期的行为。您也可以定义一些异步函数,如AJAX调用。您还可以定义行为类似于异步调用检查该链接
http://krasimirtsonev.com/blog/article/7-lines-JavaScript-library-for-calling-asynchronous-functions
http://jsbin.com/AhirAlOV/5/edit?html,js,output
重要:
还记得,JavaScript是不是多线程的语言。 JavaScript将在单个线程中运行,但会以块的形式执行。所以它将不得不完成它已经排队的每个代码块,然后继续到下一个块。您可以通过事件和回调获得异步调用错觉
Javascript中的大多数函数都是同步的。如果您要连续调用几个同步函数,则它们将按顺序执行。
first();
second();
它们将按顺序执行。直到first
已完成,second
才会启动。
Javascript是一种异步语言。他们称之为异步语言的原因是在事件的基础上执行所有函数,在事件处理程序的帮助下,我们确实无法确定事件何时会触发。它可以是鼠标点击事件,加载事件等。然而,功能的执行顺序发生。只有在第一个函数执行后,第二次启动。 但请记住,JavaScript是一种异步语言,为什么它是这样调用的。所以要回答你的问题,是的! :)
不是更快的尝试和看到(或很好...检查JS规格?如果它不是那样,它与99.99%的语言有很大的区别,然后在doc中突出显示)... – 2014-10-28 10:43:03