关于 作为状态存储的变量 和 使用当前动作进行实时搜索 的问题

动作开发 · 1309 次浏览
FaniX 创建于 2021-09-05 22:14

我通过保存状态变量实现了搜索框的多级菜单功能,在开发动作的过程中遇到一个问题:

该动作在切换多级菜单时先给一个状态变量赋值,然后执行 使用当前动作进行实时搜索 。

根据Quicker的逻辑,作为状态使用的变量,只有在动作正常结束以后才会写入状态。而 使用当前动作进行实时搜索 作为动作的一个步骤,该步骤开始执行的时候动作还没有结束。

由于搜索框的唤出需要时间,所以(唤出的)搜索动作开始运行时,前一个动作可能结束了,也可能没结束,就导致搜索动作运行时状态变量有时更新了,有时没更新。

我通过 状态存取 模块手动存储状态变量解决了这个问题,但是 状态存取 一次只能存储一个变量,如果动作中还有其他要保留的状态变量,就会比较麻烦。

一般来说, 使用当前动作进行实时搜索 这个步骤往往用在动作结束前后(逻辑上讲,大多数时候是在前一个动作结束后),不知有没有可能能在 使用当前动作进行实时搜索 模块加一个类似于“先结束当前动作”,即先return,再唤出实时搜索窗口的选项。


回复内容
CL 2021-09-05 22:56
#1

根据现有的状态缓存机制,如果通过赋值等方式更新的变量,状态缓存数据会实时更新,只是延迟写入磁盘。

如果两个动作实例不存在交叉修改状态变量的情况,应该没有影响,后面的动作实例应该会读到更新后的状态值。

回复主贴