jQuery $ .get行为-为什么它不继续执行代码?

时间:2019-07-17 20:43:50

标签: javascript jquery

执行此get逻辑时,直到页面的其余部分加载后,它才执行内部的行。

所以代码命中了...调用它。移至页面的其余部分,然后返回并执行console.log和内部用户分配。

这是为什么,以及如何在页面其余部分加载之前使其执行该代码。在剩余页面加载期间,我需要该分配。

   $.get(userUrl, function(data, status){
        console.log ("Data: " + data + "\nStatus: " + status);
        isInternalUser=data.isInternal;

     });

1 个答案:

答案 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