为什么输出总是[object Object]?

时间:2014-08-31 02:06:05

标签: javascript android adb node-webkit node-modules

var dev = [device.id](or null);

function console(stdout){$('#console').text(stdout)}

function adbShell(command){
if(dev==null){throw Error('adb >No KFSOWI detected')}
client.shell(dev,command)
 .then(function(output){console(output)})
};

我正在尝试创建一个运行adb shell命令的函数,并将输出返回到控制台,但我得到的唯一回报是[object Object]

1 个答案:

答案 0 :(得分:0)

这是因为"" + {} - 未定义toString的任何对象的字符串化 - 导致"[object Object]"。在这种情况下,转换为字符串可能发生在.text函数中。

正如meanIOstack所建议的那样,使用JSON.stringify来创建一个更有用的" 可能是有意义的。串。例如;

function console (obj) {
   var str = typeof obj === "string" ? obj : JSON.stringify(obj)
   $('#console').text(str)
}

另一方面,"真正的问题"可能是output未评估到预期值;至少上面的函数会更好地了解正在返回什么