为什么我的JavaScript变量在控制台中显示正常,但在我的HTML中未定义?

时间:2017-07-21 20:12:32

标签: javascript html undefined

在外部.js文件中,我定义并初始化了变量度,我有一个函数可以从AWS获取最新的SQS调用。当我运行脚本时,一切正常,程度打印到控制台。当我做console.log(typeof degree)时,它被定义为一个字符串,这对我来说很好。唯一的问题是,在加载HTML网页时,变量打印为“未定义”。这是我在HTML文件中的简化JavaScript:

    <li id="temp"></li>
    <script src="server.js"></script>
    <script>
        var myVar = setInterval(myTimer, 1000);
        function myTimer() {
            document.getElementById("temp").innerHTML = degree;
        } 
    </script>

我已经尝试将内部JavaScript移动到列表项上方,我已经将document.getElement行移到了计时器之外(计时器中的所有其他代码都工作并显示正常)。感谢您对此问题的任何见解!这是简化的JavaScript:

    var degree = 0;
    sqs.receiveMessage(params, function(err, data) {
       var jObject = JSON.stringify(data.Messages[0]);
       var parts = jObject.split(":");
       temp = String(parts[4]);
       degree = temp.substring(1,5);
    });

1 个答案:

答案 0 :(得分:-1)

我认为你在函数本身中尝试console.log(degree)以显示它是否有效这是第一个,在degree undefined函数之外,因为函数本身不返回任何内容试试这段代码

var degree = 0;
sqs.receiveMessage(params, function(err, data) {
    var jObject = JSON.stringify(data.Messages[0]);
    var parts = jObject.split(":");
    temp = String(parts[4]);
    degree = temp.substring(1, 5);
    return degree;
});