我在理解异步和同步 Javascript 之间的区别时遇到了一些困难,希望有人能对此有所了解。
我知道 Javascript 本质上是同步的,但您可以使用异步事件/回调来改变程序流程。但是,如果您调用包含 AJAX 且没有回调的函数,会发生什么情况?
例如,如果我有以下代码,其中foo()
包含某种服务器查询和foobar()
包含一些输出文本:
foo();
foobar();
Will foobar()
在内部逻辑之前调用foo()
已完成,或者浏览器会等待foo()
在调用之前完全执行foobar()
? (这看起来很简单,但我的困惑来自于回调以及它们是否在所有情况下都绝对需要控制程序流程,即如果foo(foobar)
总是必要的。)
另外,如果foo()
包含一个在客户端快速执行但在服务器上需要很长时间才能处理的服务器调用,是回调是我可以让我的程序等待的唯一方法foo()
执行完毕了吗?
foobar() 确实会在 foo() 中的 Ajax 调用完成之前被调用...
除非(这是第二个问题的答案)您指定 Ajax 调用应该是同步的,这是一个选项。这样做将迫使用户等到呼叫完成才能执行任何操作,因此这通常不是最佳选择。使用回调通常是最好的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)