下面是我的TypeScript代码:
private getInfoSystem = () => {
this.systemInfo = {
cpuSpeed: 0 ,
totalRam: os.totalmem(),
freeRam: os.freemem(),
sysUpTime: os_utils.sysUptime(),
loadAvgMinutes: {
one: os_utils.loadavg(1),
five: os_utils.loadavg(5),
fifteen: os_utils.loadavg(15),
}
}
si.cpuCurrentSpeed().then ((data)=> {
this.systemInfo.cpuSpeed = data.avg ;
});
return this.systemInfo;
};属性"cpuSpeed“首先被初始化为零,然后我调用使用回调函数的方法cpuCurrentSpeed(),并尝试将值放入"cpuSpeed”中。问题是cpuCurrentSpeed()的数据延迟,并且返回值在"cpuSpeed“中没有包含所需的值。
发布于 2021-11-21 15:09:00
因为您在cpuCurrentSpeed调用上使用了.then,所以我假设它返回一个Promise,而不是使用回调。如果是这样的话,你可以让你的方法异步并等待它:
private getInfoSystem = async () => {
this.systemInfo = {
cpuSpeed: 0 ,
totalRam: os.totalmem(),
freeRam: os.freemem(),
sysUpTime: os_utils.sysUptime(),
loadAvgMinutes: {
one: os_utils.loadavg(1),
five: os_utils.loadavg(5),
fifteen: os_utils.loadavg(15),
}
}
this.systemInfo.cpuSpeed = (await si.cpuCurrentSpeed()).avg;
return this.systemInfo;
};请注意,在这种情况下,您的方法还返回this.systemInfo值类型的承诺(然后调用方法需要再次等待)。
否则,您只能依赖于回调内部的Promises或回调的返回值,因为它是异步的。
https://stackoverflow.com/questions/70055639
复制相似问题