我已经编写了以下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,但是这个答案仅说明了为什么会发生这种情况,并且没有解决方法。我不在乎解释,我想要一个可行的解决方法。