# 常见问题与解答

# 单例模式 & 编译模式 & 解释模式

悠悠中的脚本都是使用编译模式,编译后的运行速度远超过解释模式,并且编译之后是一直存在的,不会造成触发一次(事件)编译一次。

当提交代码后,脚本实例会一直存在,当需要执行时,会调用 action 函数

# ES版本

目前支持 ES 5.1 和 大部分ES 6.0,但解构赋值,class不支持,以后会升级内核(Oracle公司提供支持,滑稽),将支持最新的 ES 规范

# for ... of 的问题

目前使用 for ... of 可能会引起bug,undefined,请使用普通 for 循环,以后升级内核后会修复

# 可能的堆栈异常信息中代码行定位误差(误差1行)

目前对象字面量定义时,使用 + 拼接字符串时,可能会导致堆栈异常信息中代码行定位错误(误差1行),以后升级内核后会修复

# 暂不支持接收 websocket 事件推送(规范起草中)

目前还不支持接收 websocket 事件推送,规范还在起草,可以单独运行一个中间件,将 websocket 的事件使用 http 推送到 webhook 中

# 执行顺序,责任链模式

在一个组件中,所有处理器成为一个集合,这个集合是责任链模式,先执行第一个脚本,按顺序执行到最后一个

提示

网页后台中,看到的顺序是相反的、倒叙的,可以使用 UP 按钮,将该处理器(脚本)位置前移一位

如果该处理器(脚本)中的 action 函数返回的是 true 时,将会继续执行下一个处理器(脚本),反之则结束整个责任链

值得注意的是,在消息类组件中,action 函数默认返回 false;在通知组件中,action 函数默认返回 true

在事件(前置)组件中,请手动控制返回值