ToolJet 如何在 RunJS 中故意抛出错误来调试查询失败事件处理?
【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet
在调试 ToolJet 应用的失败事件处理时(例如确认查询失败后绑定的事件是否真正触发、提示弹窗是否按预期弹出),最难的一步往往是复现一次真实的查询失败。官方文档给出的做法是:创建一个 RunJS 查询,让它在执行时故意抛出一个错误,然后用它来演练查询失败后挂的事件处理器。整个过程只需要一个已打开的 ToolJet 应用,在查询面板(query panel)内完成,不需要修改任何后端配置。
前提与操作位置
- 一个可以编辑的应用,且能打开查询面板(query panel)。RunJS(Run JavaScript code)查询用于在应用内编写并执行自定义 JavaScript 代码,可交互组件属性、触发动作等,详见 Run JavaScript code。
- 事件(Events)是 ToolJet 中基于按钮点击、查询完成等触发器运行查询、弹出提示等功能的机制,事件可以串联成链式操作,详见 Events。
- 本场景用到的动作是 Show alert,它的作用就是弹出一个提示消息,属于 ToolJet 内置动作之一,动作说明见 Actions。
步骤一:创建会抛错的 RunJS 查询
- 在查询面板上点击
+ Add按钮,新建一个 RunJS 查询。 - 在 RunJS 查询编辑器中粘贴以下代码。文档指出这段代码利用
ReferenceError构造器故意生成一个错误:
throw new ReferenceError('This is a reference error.');这行代码没有可替换的变量,直接粘贴即可。它的作用就是让查询在执行时立即失败,模拟一次真实的查询失败。
步骤二:为查询添加失败事件处理器
在 官方指南中,这一步是:为查询增加一个事件处理器,让它在查询失败时显示一个 alert。
按 Events 文档描述的事件处理器设置方式:进入相应配置项,点击New Event Handler,然后定义两件事——触发事件(这里是该查询执行失败)和要执行的动作(选择 Show alert,即弹出提示消息)。事件处理器的具体动作可以是运行查询、弹出 alert、切换页面等,本场景固定为 Show alert。
文档没有给出 alert 的具体文案示例,弹窗内容由你在事件动作里自行填写,只需保证失败后能看到提示即可。
步骤三:运行并观察失败事件
点击查询的Run按钮执行该 RunJS 查询,然后观察两件事:
- 查询按预期抛出错误,文档中的表述是 "observe the intentional error being thrown"——查询面板会呈现这次故意制造的失败,而不是静默通过;
- 你在步骤二绑定的失败事件处理器被触发,弹出 alert 提示。
官方文档配有一段演示该流程的屏幕录制,可以在仓库中查看:
如果错误被抛出但 alert 没有弹出,说明失败事件处理器没有绑定成功,回到步骤二检查事件定义;如果查询本身没有报错,说明粘贴的代码不是上面这段throw语句。
适用边界与清理
- 这是一个调试技巧:文档明确说该做法用于 "simulate errors in your RunJS queries, aiding in the debugging process and improving the overall robustness of your code",即模拟错误以辅助调试、提升代码健壮性。抛出的
ReferenceError是人为制造的,不代表应用接口的真实故障。 - 调试完成后,删除这个 RunJS 查询即可,它不依赖任何数据源,删掉不会影响其他查询。
- RunJS 查询除了手动点 Run,也可以由按钮点击等交互触发(见 Run JavaScript code),如果你想验证的是"用户操作 → 失败 → 提示"这条完整链路,可以按同样方式把该查询挂到按钮事件上。
相关文档入口:Intentionally Throwing an Error in RunJS for Debugging、Run JavaScript code、Events、Actions。
【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考