Wilson@思源

目 录

思源嵌入块js的问题

see https://github.com/siyuan-note/siyuan/issues/13775
如图

先说异步函数

参见源代码
修改前在new function函数体中只能这样使用
js
//!js return (async ()=>{ const result await query(); return result; })(); // 或 const asyncFunc = async () => { const result await query(); return result; } return asyncFunc();
修改后可以这样使用
js
return await query();
显然后者更简洁和优雅。

再说错误信息

参见源代码
思源拦截了错误信息,既无抛出错误也无打印错误信息,只是返回了空数组,界面显示就是没匹配任何内容。
这个非常不友好,如果函数体内有语法错误,应该输出到控制台,这样开发起来更方便。
要想捕获错误,必须自己在代码中try{}catch(e){},如下,非常麻烦,尤其对小白用户,非常不友好。
js
//!js try { return query("select `aa` as `aa__w80_c:blue_0`, `bb` from ?", [fromTable('20250110154352-pdr5v3t'),item]); } catch(e) { console.error(e) return []; }