将包含任何内容的javascript对象转换为字符串

时间:2012-03-16 04:13:41

标签: javascript gnome-shell

我正在为gnome-shell编写扩展。 javascript扩展生成一个sql查询并捕获标准输出的输出。在sql查询求值为0元组/记录的情况下,我的扩展名正在崩溃。

以下是代码段。

let [success, out, err, error] = GLib.spawn_sync(null, ["sqlite3", "-line", places, sqlQuery], null, 4, null);
let result = out.toString(); // Crashing here for 0 tuples. I was expecting 'result = ""'

我是一个javascript新手。我不明白在这种情况下应该如何处理对象out。该对象不为null;它也不是未定义的。

typeof out == null // false
typeof out == undefined // false
typeof out == "object" // true

修改

typeof out == "null" // false
typeof out == "undefined" // false
typeof out == "object" // true

1 个答案:

答案 0 :(得分:0)

我发现如果我执行以下操作,我可以防止崩溃

let [success, out, err, errno] = GLib.spawn_sync(null, ["sqlite3", "-line", places, sqlQuery], null, 4, null);
if (out.length > 0) {
        let records = out.toString().split('\n\n');
}

我不明白为什么out.toString()无法给我一个空字符串而不是崩溃。希望我能够了解更多有关javascript和glib的信息。