|
楼主 |
发表于 2024-5-11 11:44:14
|
显示全部楼层
本帖最后由 jarlyyn 于 2024-5-11 12:22 PM 编辑
下面是私货
好了,很明显,我提这个问题,就是为了我正在构思中的 “预期”这个概念预热。
触发,在我现在的思路里,其实分为 服务器主动发起的(事件),和对我们的操作的反馈。
预期就是指,我们对服务器发送指令的目的,我们期盼的服务器的几种反馈。
可能是触发(^> $)
可能是事件(gmcp)
可能是时间(0.5s)
任何一个触发了,就标志着预期完成了,一起失效了(这也就是我们频繁开开关关触发组的目的)
同时,我们在开始预期的时候,就有很明确的预期失效目标
可能是超时(1s后这些就别判断了,超时了大哥)
可能是事件(比如进入新房间,enter_room)。
因此,我觉得,我可以通过这样的方式(伪代码)来创建我们的预期
yuqi.new('game.quit','enter_room')--失效事件
:expiredAfter(10)--失效时间
:waitForRegexp('^> $',function()end)--预期正则
:waitForEvent('GMCP.MOVESuccess',function()end)--预期事件
:waitForSeconds(0.5,function()end)--预期时间
:onFail(function):
这样的优点有两个- 可读性高,这个功能要做啥一样能看出来,而且封闭性好,不容易冲突
- 在创建触发时就定义了什么时候关闭触发,不需要再在不同的位置去关闭触发,最多在处理函数里取消关闭。这样写起来容易,维护容易,心智负担低。
恩,就是个想法,怎么实现比较好还在构思。
|
|