了解到该javascript有一个线程来执行其代码,可以说同一个ajax调用一个接一个地被调用两次,并且此ajax调用有一个回调。可以说回调是这样的:
function callBackFromJax(){
var number = 2;
number = 2+1;
number = number +5;
console.info(number)
}
我想,如果它为第一个ajax调用执行了回调方法,尽管第二个ajax调用已经完成:
谢谢!
答案 0 :(得分:1)
如果您已经用Java完成GUI编程,那就像是Swing线程或JavaFX线程。一切都在一个线程中运行。您可以使用a
将新任务排队等待在这些线程上运行,但是您无法同时执行两个任务-这个想法甚至没有意义。
与JavaScript相同。异步事件存储在队列中,并且单线程一次处理一次。
答案 1 :(得分:1)
这有助于了解其中有一个调用堆栈和一个事件队列。调用堆栈一次处理一件事,并表示JavaScript的单线程性质。事件循环是一种队列,在该队列中放置了asyschronus方法,然后在它们完成时以及在调用栈为空时将其移到调用栈进行处理。
它必须等待单个线程结束第一个回调方法的执行,对吗? : 对,那是正确的。 这样就不可能为两个线程同时执行该回调方法的代码。 是的,多数民众赞成在正确 就像让功能从javascript中的Java同步到方法一样 这不是正确的事件循环和调用堆栈的原因。
请在YouTube上观看此视频https://www.youtube.com/watch?v=8aGhZQkoFbQ,以获取更多互动说明。