我正在使用 node.js 制作一个脚本,用于在 i3 中设置我的 dzen2,并且之前没有真正使用过 Node 来完成类似的事情。
我需要从屏幕的几何形状开始,我可以通过以下方式获得:
geometry = getGeo();
function getGeo() {
var sh = require('child_process').exec("i3-msg -t get_outputs",
function(error, stdout, stderr) {
var out = JSON.parse(stdout);
return out[0].rect; //this is the geometry, {"x":0, "y":0, "width":1280, "height":768}
});
};
console.log(geometry);
console.log 正在记录未定义的日志。
我不知道正确的方法是什么,我的大脑很累。
最佳答案
您无法从回调函数返回,因为它是异步的。 而是编写另一个函数并将回调对象传递给它。
function getGeo() {
var sh = require('child_process').exec("i3-msg -t get_outputs",
function(error, stdout, stderr) {
var out = JSON.parse(stdout);
getRect(return out[0].rect);
});
};
function getRect(rect) {
// Utilize rect here...
}
关于Node.js 范围问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166266/