JavaScript全局变量值会自动重置

时间:2018-10-14 02:39:51

标签: javascript jquery

我已经编写了以下JQuery / Javascript代码:

$(document).ready(function(){
    const si = require('systeminformation');
    var cpuspeed, cpucores, ram, resy, disksize; 
    function setValues() {
        si.diskLayout(function(data) {
            disksize = (data[0].size)/(1024*1024*1024);  
        });
        si.graphics(function(data) {
            resy= data.displays[0].resolutiony;
        });
        si.mem(function(data) {
            ram = (data.total)/(1024*1024*1024);
        });
        si.cpu(function(data) {
            cpucores = data.cores;
            cpuspeed = data.speed;
            console.log(cpuspeed); //The First Console Log
        });
    }
    setValues();
    console.log(cpuspeed, cpucores, ram, resy, disksize); //The Second Console Log
})

第一个控制台日志给出正确的输出,但是第二个控制台日志在所有值中返回“ undefined”。我什至尝试将var cpuspeed, cpucores ...语句移到$(document).ready ..函数之外,但是它没有任何改变。我在哪里犯错了?

我在这里看到了一个答案:Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference,但是这个答案仅说明了为什么会发生这种情况,并且没有解决方法。我不在乎解释,我想要一个可行的解决方法。

0 个答案:

没有答案