这是我的代码:
我基于here
的窗口变量<script>
$(window).on("load", function() {
function myForeverFunc(){
window.global_time = "3";
$.ajax({
url: "index.php?action=showReminder",
cache: false,
success: function(data){
if(data && data.charAt(0) === "1"){
window.global_time = "1";
}else{
console.log("test");
window.global_time = "2";
}
}
});
console.log(window.global_time);
}
setInterval(myForeverFunc, 60*1000);
});
</script>
这只显示“3”,它应该在ajax函数的else部分更新为“2”。
答案 0 :(得分:3)
因为Ajax调用是异步的。
,success:function(){}
内的内容/语句只有在收到Ajax调用的响应后才会执行。
如果您将控制台放在success:function(data){}
success: function(data){
console.log("Data from Ajax request is received");
}
在记录“3”后,将记录“收到Ajax请求的数据”。 I.e收到服务器/请求的响应后。
答案 1 :(得分:0)
由于$.ajax()
执行异步HTTP请求,它不会实时返回数据,因此您应该在console.log
回调中移动success
,以便在$.ajax({
url: "index.php?action=showReminder",
cache: false,
success: function(data){
if(data && data.charAt(0) === "1"){
window.global_time = "1";
}else{
console.log("test");
window.global_time = "2";
}
console.log(window.global_time);
}
});
回调时显示结果从服务器端返回:
List<String> commands = new ArrayList<String>();
commands.add("cmd.exe");
commands.add("/k");
commands.add("cd D:/" + " && D: && git clone --depth 1 <url>");
ProcessBuilder pb = new ProcessBuilder(commands);
pb.redirectErrorStream(true);
Process prs = pb.start();
prs.waitFor();
BufferedReader input = new BufferedReader(new InputStreamReader(prs.getInputStream()));
String line = null;
while((line = input.readLine())!= null) {
output = output + line;
System.out.println(line);
}
System.out.println(output);
// final String fileAsText = input.lines().collect(Collectors.joining());
//System.out.println(fileAsText);
input.close();
希望这有帮助。
答案 2 :(得分:0)
<script>
$(window).on("load", function() {
function myForeverFunc(){
window.global_time = "3";
$.ajax({
url: "index.php?action=showReminder",
cache: false,
success: function(data){
if(data && data.charAt(0) === "1"){
window.global_time = "1";
}else{
console.log("test");
window.global_time = "2";
}
console.log(window.global_time);
}
});
}
setInterval(myForeverFunc, 60*1000);
});
</script>