请注意,我是一个总的小白,当谈到Node.js的混乱与异步功能
我创建了一个应用程序的WebSockets当客户端连接,将发送服务器的状态和使用每秒(通过基本身份验证,以便只有授权的用户可以联系)。
我想磁盘使用情况的信息添加到数据并且使用针对该nodejs-disks模块。这是我创建获取信息的功能,我需要:
function getDiskStats()
{
var output = {
count: 0,
space: {
total: 0,
used: 0,
free: 0
}
};
df.drives(function(err, drives)
{
df.drivesDetail(drives, function(err, data)
{
output.count = data.length;
for(var i = 0; i < data.length; i++)
{
output.space.total += parseInt(data[i].total);
output.space.used += parseInt(data[i].used);
output.space.free += parseInt(data[i].available)
}
});
});
return output;
}
但返回的输出时,一切都是0,如果我在控制台登录变量权for
循环之后,我得到的值。我的猜测是,因为异步方法nodejs-disks
用于获取数据。我不确定接下来应该做什么,我有很多谷歌,但找不到一个好的解决方案。
谢谢!
从来没有想过......大声笑...另一件事:我必须使用回调中的WS Server的sendText函数,对吧?因为如果在函数外部调用输出,它仍然是异步的,并且磁盘细节仍然为空。 – sikhlana 2014-09-04 09:37:02