我有一段javaScript代码:
var ws_path = "x";
$.get('ws.config', function(data) {
ws_path = data;
alert(ws_path); //alert 1
},
'text');
alert(ws_path); // alert 2
// output = alert 1 = value of data
// alert 2 = x
我有一个困惑'为什么它表现得像这样?
答案 0 :(得分:3)
这是因为alert(ws_path);
在从ws.config
文件的服务器获取内容之前执行。您需要在get函数中编写代码,以确保在获取请求后修改变量。
<强> jQuery.get 强>
答案 1 :(得分:1)
在$.get
请求完成之前触发第二个警报。
答案 2 :(得分:0)
重要的一点是:
$.get('ws.config' ....
是一种ajax调用,从服务器获取实际值需要一些时间,并且匿名函数有一个回调函数,当ajax调用收到响应时会调用它。
如果你想要一个有序的场景,你可以在你的代码中执行此操作:
var ws_path = "x";
$.get('ws.config', function(data) {
ws_path = data;
alert(ws_path);
continueScenario();
}, 'text');
function continueScenario(){
alert(ws_path);
}