在外部.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);
});
答案 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;
});