javascript 无法访问参数的属性 undefined 错误

发布于 2022-09-30 23:11:08 字数 1938 浏览 50 评论 0

边查边做,完全不了解JS,希望大佬们可以指点指点。
自己在本地打算做一个小页面显示一些数据,数据用python定期获取并输出成一个叫data.json的文件。
下面是具体代码:

<!-- html 页面中的代码 -->
<script src="resource/jquery-3.6.0.js"></script>
<script src="resource/script.js"></script>
<script>
    getSomething(getStationData());
    <!--
    也试过这种写法:
    var someData = getStationData();
    getSomething(someData);
    -->
</script>

下面是data.json托管在http://127.0.0.1/data/data.json

{
    "STANAME": "Station"
}

下面是javascript

function getStationData(dataType) {
    var dataUrl = "http://127.0.0.1/data/data.json";
    var urlResponse = $.getJSON(dataUrl, function() {
        console.log("getStationData at resource/script.js.");
    })
        .done(function(json) {
            console.log("getStationData: OK. Get station data success.");
            console.log("getStationData: MSG: Data type is " + typeof json);
            var stationData = json;
            console.log(stationData);
            return stationData;
        })
        .fail(function() {
            console.log("getStationData: NG. Get station data fail.");
        })
        .always(function() {
            console.log("getStationData: Complete.");
        });
}

function getSomething(rawData) {
    console.log("getSomething: " + rawData);
    var thing = rawData["STANAME"];    //试过用`.STANAME`和`[STANAME]`,结果都是同样的错误。
    console.log("getSomething: " + thing);
}

在chrome中打开页面,会提示getSomething: undefined,是getSometing的第一行输出的。
getSomething括号里调用的getStationData,可以正常执行。typeof json输出的是objectconsole.log也能正确输出json文件的内容。

具体表现看下图:
chrome的错误提示

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲娇萝莉攻 2022-10-07 23:11:08

这个方法里面并没 return 。所以这个值你肯定取不到。image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文