不能将php $.get()函数的输出存储到javascript变量中


Can't store output of php $.get() function to javascript variable?

我知道关于这个话题有很多问题,但我已经搜索了又搜索,我卡住了,所以请原谅我。

我试图将php文件的HTTP输出存储到我的javascript变量中,但它不像预期的那样工作。

到目前为止,我在客户端有这个:

var modDate;
function getModDate() {
    $.get('checkModDate.php?filename=plot.svg', function (data) {
        modDate = data;
    });
    return modDate;
}
$(document).ready(function () { // Execute when page has loaded
    alert(getModDate());
});

服务器端:

<?php
$filename = $_GET["filename"];
if (file_exists($filename)) {
  echo filemtime($filename);
}
?>

警报的输出只是'undefined'。

但是,如果我只是像这样将警报放入getModDate()函数中:

function getModDate(){
  $.get('checkModDate.php?filename=plot.svg', function(data) {
       modDate = data;
       alert(modDate);
   });
}

我得到正确的输出。我错过了什么?我已经声明modDate作为一个全局变量,所以我不能弄清楚是什么导致这种行为。

我希望你能帮助我。

一个字- async。

在第一种情况下,在$.get的回调执行之前触发返回。

建议阅读事件循环和基本异步处理。