执行此get逻辑时,直到页面的其余部分加载后,它才执行内部的行。
所以代码命中了...调用它。移至页面的其余部分,然后返回并执行console.log和内部用户分配。
这是为什么,以及如何在页面其余部分加载之前使其执行该代码。在剩余页面加载期间,我需要该分配。
$.get(userUrl, function(data, status){
console.log ("Data: " + data + "\nStatus: " + status);
isInternalUser=data.isInternal;
});
答案 0 :(得分:0)
这是异步代码的工作方式。 AJAX将请求发送到服务器,但它不等待接收响应,而是继续执行其余代码。浏览器收到响应后,会将其放在事件队列中,但是会按顺序进行处理。如果有其他事件首先触发,则其侦听器将按顺序执行。
AJAX确实具有同步操作的选项;在jQuery中,您可以使用$.ajax
并使用async: false
选项来访问它。但是不推荐使用此功能,因此您确实应该尝试设计应用程序,使其不需要它。
请参见How do I return the response from an asynchronous call?和Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference